<input>: Das HTML-Eingabeelement
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Das <input>
-Element in HTML wird verwendet, um interaktive Steuerelemente für webbasierte Formulare zu erstellen, um Daten vom Benutzer zu akzeptieren. Es stehen eine Vielzahl von Arten von Eingabedaten und Steuerelementen zur Verfügung, abhängig vom Gerät und dem User-Agent. Das <input>
-Element ist eines der leistungsstärksten und komplexesten in ganz HTML, aufgrund der zahlreichen Kombinationen von Eingabetypen und Attributen.
Probieren Sie es aus
<label for="name">Name (4 to 8 characters):</label>
<input
type="text"
id="name"
name="name"
required
minlength="4"
maxlength="8"
size="10" />
label {
display: block;
font:
1rem "Fira Sans",
sans-serif;
}
input,
label {
margin: 0.4rem 0;
}
<input>
Typen
Wie ein <input>
funktioniert, variiert erheblich je nach Wert des type
-Attributs. Daher werden die verschiedenen Typen auf eigenen Referenzseiten behandelt. Wenn dieses Attribut nicht angegeben ist, wird standardmäßig der Typ text
angenommen.
Die verfügbaren Typen sind wie folgt:
Typ | Beschreibung | Grundlegende Beispiele |
---|---|---|
button |
Eine Schaltfläche ohne Standardverhalten, die den Wert des value -Attributs anzeigt, standardmäßig leer.
|
|
checkbox | Ein Kontrollkästchen, das es ermöglicht, einzelne Werte auszuwählen oder abzuwählen. |
|
color | Ein Steuerelement zur Auswahl einer Farbe; öffnet einen Farbwähler, wenn in unterstützten Browsern aktiviert. |
|
date | Ein Steuerelement zur Eingabe eines Datums (Jahr, Monat und Tag, ohne Zeit). Öffnet einen Datumswähler oder numerische Räder für Jahr, Monat, Tag, wenn in unterstützten Browsern aktiviert. |
|
datetime-local | Ein Steuerelement zur Eingabe eines Datums und einer Uhrzeit, ohne Zeitzone. Öffnet einen Datumswähler oder numerische Räder für Datums- und Zeitkomponenten, wenn in unterstützten Browsern aktiviert. |
|
Ein Feld zur Bearbeitung einer E-Mail-Adresse. Sieht aus wie eine
text -Eingabe, verfügt jedoch über Validierungsparameter und eine relevante
Tastatur in unterstützten Browsern und Geräten mit dynamischen Tastaturen.
|
|
|
file |
Ein Steuerelement, das dem Benutzer das Auswählen einer Datei ermöglicht.
Verwenden Sie das accept -Attribut, um die Arten von Dateien zu definieren, die das Steuerelement auswählen kann.
|
|
hidden | Ein Steuerelement, das nicht angezeigt wird, dessen Wert jedoch an den Server übermittelt wird. Es gibt ein Beispiel in der nächsten Spalte, aber es ist versteckt! | |
image |
Ein grafischer submit -Button. Zeigt ein Bild an, das durch das src -Attribut definiert ist.
Das alt -Attribut wird angezeigt, wenn das Bild src fehlt.
|
|
month | Ein Steuerelement zur Eingabe eines Monats und Jahres, ohne Zeitzone. |
|
number | Ein Steuerelement zur Eingabe einer Zahl. Zeigt einen Spinner an und fügt die Standard- Validierung hinzu. Zeigt ein numerisches Tastenfeld auf einigen Geräten mit dynamischen Tastaturen. |
|
password | Ein einzeiliges Textfeld, dessen Wert verborgen ist. Warnt den Benutzer, wenn die Seite nicht sicher ist. |
|
radio |
Ein Optionsknopf, der es ermöglicht, einen einzigen Wert aus mehreren
Auswahlmöglichkeiten mit demselben name -Wert auszuwählen.
|
|
range |
Ein Steuerelement zur Eingabe einer Zahl, deren genauer Wert nicht wichtig
ist. Wird als Bereichs-Widget angezeigt, das standardmäßig auf den mittleren
Wert eingestellt ist. Wird in Verbindung mit min und max
verwendet, um den Bereich akzeptabler Werte zu definieren.
|
|
reset | Ein Button, der die Inhalte des Formulars auf Standardwerte zurücksetzt. Nicht empfohlen. |
|
search | Ein einzeiliges Textfeld zur Eingabe von Suchzeichenfolgen. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. Kann eine Löschtaste in unterstützenden Browsern enthalten, die zum Leeren des Feldes verwendet werden kann. Zeigt ein Suchsymbol statt der Eingabetaste auf einigen Geräten mit dynamischen Tastaturen an. |
|
submit | Ein Button, der das Formular absendet. |
|
tel | Ein Steuerelement zur Eingabe einer Telefonnummer. Zeigt ein Telefonsymbol an in einigen Geräten mit dynamischen Tastaturen. |
|
text | Der Standardwert. Ein einzeiliges Textfeld. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. |
|
time | Ein Steuerelement zur Eingabe eines Zeitwertes ohne Zeitzone. |
|
url |
Ein Feld zur Eingabe einer URL. Sieht aus wie eine text -Eingabe, verfügt aber
über Validierungsparameter und eine relevante Tastatur in unterstützten Browsern
und Geräten mit dynamischen Tastaturen.
|
|
week | Ein Steuerelement zur Eingabe eines Datums bestehend aus einer Kalenderwoche und einer Jahreszahl, ohne Zeitzone. |
|
Veraltete Werte | ||
datetime
Veraltet
|
Ein Steuerelement zur Eingabe eines Datums und einer Uhrzeit (Stunde, Minute, Sekunde und Zehntelsekunde), basierend auf der UTC-Zeitzone. |
|
Attribute
Das <input>
-Element ist aufgrund seiner Attribute so leistungsfähig; das type
-Attribut, das oben mit Beispielen beschrieben wird, ist das wichtigste. Da jedes <input>
-Element, unabhängig vom Typ, auf der HTMLInputElement
-Schnittstelle basiert, haben sie technisch dieselbe Menge von Attributen gemeinsam. In der Realität haben jedoch die meisten Attribute nur auf eine bestimmte Teilmenge von Eingabetypen Einfluss. Darüber hinaus hängt die Art und Weise, wie einige Attribute eine Eingabe beeinflussen, vom Eingabetyp ab, der verschiedene Eingabetypen auf unterschiedliche Weise beeinflusst.
Dieser Abschnitt enthält eine Tabelle, in der alle Attribute mit einer kurzen Beschreibung aufgeführt sind. Diese Tabelle wird durch eine Liste ergänzt, die jedes Attribut detaillierter beschreibt und angibt, mit welchen Eingabetypen sie in Verbindung stehen. Attribute, die für die meisten oder alle Eingabetypen gemeinsam sind, werden weiter unten ausführlicher definiert. Attribute, die für bestimmte Eingabetypen einzigartig sind, oder Attribute, die zwar für alle Eingabetypen gelten, aber bei bestimmten Eingabetypen besondere Verhaltensweisen aufweisen, werden stattdessen auf den Seiten dieser Typen dokumentiert.
Attribute für das <input>
-Element beinhalten die globalen HTML-Attribute und zusätzlich:
Attribut | Typ(en) | Beschreibung |
---|---|---|
accept |
file |
Hinweis auf den erwarteten Dateityp in Datei-Upload-Steuerelementen |
alt |
image |
Alt-Attribut für den Bildtyp, erforderlich für die Barrierefreiheit |
autocapitalize |
alle außer url , email , and password |
Steuert die automatische Großschreibung im eingegebenen Text. |
autocomplete |
alle außer checkbox , radio , und Schaltflächen |
Hinweis für die Autoausfüllen-Funktion des Formulars |
capture |
file |
Methode zur Erfassung von Medien in Datei-Upload-Steuerelementen |
checked |
checkbox , radio |
Ob der Befehl oder die Steuerung ausgewählt ist |
dirname |
hidden , text , search , url , tel , email |
Name des Formularfeldes, das zur Übermittlung der Richtung des Elements verwendet wird |
disabled |
alle | Ob das Formularelement deaktiviert ist |
form |
alle | Verknüpft die Steuerung mit einem Formularelement |
formaction |
image , submit |
URL für die Formularübermittlung |
formenctype |
image , submit |
Kodierungstyp für Formulardatensatz zur Verwendung bei der Formularübermittlung |
formmethod |
image , submit |
HTTP-Methode für die Formularübermittlung |
formnovalidate |
image , submit |
Formularvalidierung für die Formularübermittlung passieren |
formtarget |
image , submit |
Browsingkontext für die Formularübermittlung |
height |
image |
Entspricht dem Höhenattribut für <img> ; vertikale Abmessung |
list |
alle außer hidden , password , checkbox , radio , und Schaltflächen |
Wert des ID-Attributs der <datalist> für Autovervollständigungsoptionen |
max |
date , month , week , time , datetime-local , number , range |
Maximaler Wert |
maxlength |
text , search , url , tel , email , password |
Maximale Länge (Anzahl der Zeichen) des value |
min |
date , month , week , time , datetime-local , number , range |
Minimaler Wert |
minlength |
text , search , url , tel , email , password |
Minimale Länge (Anzahl der Zeichen) des value |
multiple |
email , file |
Boolean. Ob mehrere Werte zulässig sind |
name |
alle | Name der Formsteuerung. Wird mit dem Formular als Teil eines Name/Wert-Paares übermittelt |
pattern |
text , search , url , tel , email , password |
Muster, das der value entsprechen muss, um gültig zu sein |
placeholder |
text , search , url , tel , email , password , number |
Text, der im Formularelement erscheint, wenn es keinen eingestellten Wert hat |
popovertarget |
button |
Bestimmt ein <input type="button"> als Steuerung für ein Popover-Element |
popovertargetaction |
button |
Gibt die Aktion an, die eine Popover-Steuerung ausführen soll |
readonly |
alle außer hidden , range , color , checkbox , radio , und Schaltflächen |
Boolean. Der Wert ist nicht bearbeitbar |
required |
alle außer hidden , range , color , und Schaltflächen |
Boolean. Ein Wert ist erforderlich oder muss zum Absenden des Formulars ausgewählt werden |
size |
text , search , url , tel , email , password |
Größe der Steuerung |
src |
image |
Entspricht dem src -Attribut für <img> ; Adresse der Bildressource |
step |
date , month , week , time , datetime-local , number , range |
Inkrementelle Werte, die gültig sind |
type |
alle | Typ der Formsteuerung |
value |
alle außer image |
Der Wert der Steuerung. Wenn im HTML angegeben, entspricht dies dem Anfangswert |
width |
image |
Entspricht dem width -Attribut für <img> |
Einige zusätzliche nicht standardmäßige Attribute sind nach den Beschreibungen der Standardattribute aufgeführt.
Einzelne Attribute
accept
-
Gilt nur für den Eingabetyp
file
, dasaccept
-Attribut definiert, welche Dateitypen in einerfile
-Upload-Steuerung auswählbar sind. Siehe den file-Eingabetyp. alt
-
Gültig nur für den Bild-Button, bietet das
alt
-Attribut alternativen Text für das Bild, indem der Wert des Attributs angezeigt wird, wenn das Bildsrc
fehlt oder anders nicht geladen werden kann. Siehe den image-Eingabetyp. autocapitalize
-
Steuert ob eingegebener Text automatisch großgeschrieben wird und, falls ja, in welcher Weise. Weitere Informationen finden Sie auf der globalen Attributseite
autocapitalize
. autocomplete
-
(Kein Boolean-Attribut!) Das
autocomplete
-Attribut nimmt als Wert eine durch Leerzeichen getrennte Zeichenkette an, die beschreibt, welche Art von Autovervollständigungsfunktionalität das Eingabefeld bieten soll. Eine typische Implementierung von Autovervollständigung erinnert sich an zuvor eingegebene Werte im selben Eingabefeld, aber komplexere Arten von Autovervollständigung können existieren. Beispielsweise könnte ein Browser mit der Kontaktliste eines Geräts interagieren, umemail
-Adressen in einem E-Mail-Eingabefeld automatisch zu vervollständigen. Sieheautocomplete
für zulässige Werte.Das
autocomplete
-Attribut ist gültig fürhidden
,text
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
,range
,color
undpassword
. Dieses Attribut hat keine Wirkung bei Eingabetypen, die keine numerischen oder textbasierten Daten zurückgeben, und ist gültig für alle Eingabetypen außercheckbox
,radio
,file
oder jede der Schaltflächenarten.Weitere Informationen finden Sie im
autocomplete
-Attribut, einschließlich Informationen zur Passwortsicherheit und wie sichautocomplete
fürhidden
leicht von anderen Eingabetypen unterscheidet. autofocus
-
Ein Boolean-Attribut, das, falls vorhanden, anzeigt, dass die Eingabe automatisch den Fokus haben soll, nachdem die Seite geladen wurde (oder nachdem das
<dialog>
, das das Element enthält, angezeigt wurde).Hinweis: Ein Element mit dem
autofocus
-Attribut kann den Fokus erhalten, bevor dasDOMContentLoaded
-Ereignis ausgelöst wird.Nicht mehr als ein Element im Dokument darf das
autofocus
-Attribut haben. Wenn es auf mehr als einem Element vorhanden ist, erhält das erste Element mit dem Attribut den Fokus.Das
autofocus
-Attribut kann nicht auf Eingaben des Typshidden
verwendet werden, da versteckte Eingaben nicht fokussiert werden können.Warnung: Das automatische Fokussieren auf ein Formularelement kann sehbehinderte Menschen, die Bildschirmlesetechnologie verwenden, und Menschen mit kognitiven Beeinträchtigungen verwirren. Wenn
autofocus
zugewiesen wird, "teleportieren" Bildschirmleser ihre Benutzer ohne vorherige Warnung zum Formularelement.Berücksichtigen Sie den Aspekt der Zugänglichkeit sorgfältig, wenn Sie das
autofocus
-Attribut anwenden. Das automatische Fokussieren auf ein Steuerelement kann dazu führen, dass die Seite beim Laden scrollt. Der Fokus kann auch dazu führen, dass dynamische Tastaturen auf einigen Touch-Geräten angezeigt werden. Während ein Bildschirmleser das Label des fokussierten Formularelements ankündigt, wird der Bildschirmleser nichts vor dem Label ankündigen, und der sehende Benutzer auf einem kleinen Gerät wird gleichermaßen den Kontext, der durch den vorhergehenden Inhalt geschaffen wird, verpassen. capture
-
Eingeführt in der HTML Media Capture-Spezifikation und gültig nur für den Eingabetyp
file
, definiert dascapture
-Attribut, welches Medium—Mikrofon, Video oder Kamera—verwendet werden soll, um eine neue Datei zur Übertragung mitfile
-Upload-Steuerung in unterstützten Szenarien zu erfassen. Siehe den file-Eingabetyp. checked
-
Gültig für sowohl
radio
als auchcheckbox
Typen, istchecked
ein Boolean-Attribut. Wenn es beimradio
-Typ vorhanden ist, zeigt es an, dass die Radiobox derzeit die ausgewählte in der Gruppe gleichnamiger Radioboxen ist. Wenn es beimcheckbox
-Typ vorhanden ist, zeigt es an, dass das Kontrollkästchen standardmäßig (beim Laden der Seite) aktiviert ist. Es zeigt nicht an, ob das Kontrollkästchen derzeit aktiviert ist: Wenn sich der Zustand des Kontrollkästchens ändert, spiegelt dieses Inhaltsattribut die Änderung nicht wider. (Nur dasHTMLInputElement
'schecked
IDL-Attribut wird aktualisiert.)Hinweis: Im Gegensatz zu anderen Eingabesteuerungen ist der Wert eines Kontrollkästchens und Radios nur dann in den übermittelten Daten enthalten, wenn sie aktuell
checked
sind. Wenn sie das sind, werden der Name und die Wert(e) der aktivierten Steuerelemente übermittelt.Zum Beispiel, wenn ein Kontrollkästchen, dessen
name
fruit
ist, einenvalue
voncherry
hat und das Kontrollkästchen aktiviert ist, werden die Formulardatenfruit=cherry
enthalten. Wenn das Kontrollkästchen nicht aktiv ist, wird es in den Formulardaten überhaupt nicht aufgelistet. Der Standard-value
für Kontrollkästchen und Radios iston
. dirname
-
Gültig für
hidden
,text
,search
,url
,tel
undemail
Eingabearten ermöglicht dasdirname
-Attribut die Übermittlung der Richtung des Elements. Wenn es enthalten ist, übermittelt die Eingabesteuerung zusammen mit zwei Name/Wert-Paaren: das erste ist dername
undvalue
, und das zweite ist der Wert desdirname
-Attributs als Name, mit einem Wert vonltr
oderrtl
, wie vom Browser festgelegt.html<form action="page.html" method="post"> <label> Fruit: <input type="text" name="fruit" dirname="fruit-dir" value="cherry" /> </label> <input type="submit" /> </form> <!-- page.html?fruit=cherry&fruit-dir=ltr -->
Wenn das oben angegebene Formular übermittelt wird, veranlasst die Eingabe, dass sowohl das
name
/value
Paarfruit=cherry
als auch dasdirname
/ Richtungs-Paarfruit-dir=ltr
gesendet werden. Weitere Informationen finden Sie imdirname
-Attribut. disabled
-
Ein Boolean-Attribut, das, falls vorhanden, anzeigt, dass der Benutzer nicht in der Lage sein sollte, mit der Eingabe zu interagieren. Deaktivierte Eingaben werden typischerweise mit einer gedämpfteren Farbe oder mit einer anderen Form von Indikator darstellt, dass das Feld nicht verfügbar ist.
Speziell erhalten deaktivierte Eingaben nicht das
click
-Ereignis, und deaktivierte Eingaben werden nicht zusammen mit dem Formular übermittelt.Hinweis: Obwohl nicht durch die Spezifikationen gefordert, wird Firefox standardmäßig den dynamischen deaktivierten Zustand eines
<input>
beim Seitenladen beibehalten. Verwenden Sie dasautocomplete
-Attribut, um diese Funktion zu steuern. form
-
Ein String, der das
<form>
-Element spezifiziert, mit dem die Eingabe verknüpft ist (d.h. sein Formularbesitzer). Der Wert dieses Strings, falls vorhanden, muss derid
eines<form>
-Elements im selben Dokument entsprechen. Wenn dieses Attribut nicht angegeben ist, wird das<input>
-Element dem am nächsten gelegenen enthaltenden Formular zugeordnet, falls vorhanden.Das
form
-Attribut ermöglicht es Ihnen, eine Eingabe irgendwo im Dokument zu platzieren, sie aber als Teil eines Formulars mit einzubeziehen, das sich an einer anderen Stelle im Dokument befindet.Hinweis: Eine Eingabe kann nur einem Formular zugeordnet werden.
formaction
-
Gültig nur für die Eingabetypen
image
undsubmit
. Siehe den submit-Eingabetyp für weitere Informationen. formenctype
-
Gültig nur für die Eingabetypen
image
undsubmit
. Siehe den submit-Eingabetyp für weitere Informationen. formmethod
-
Gültig nur für die Eingabetypen
image
undsubmit
. Siehe den submit-Eingabetyp für weitere Informationen. formnovalidate
-
Gültig nur für die Eingabetypen
image
undsubmit
. Siehe den submit-Eingabetyp für weitere Informationen. formtarget
-
Gültig nur für die Eingabetypen
image
undsubmit
. Siehe den submit-Eingabetyp für weitere Informationen. height
-
Gültig nur für den Bild-Button, die
height
ist die Höhe der Bilddatei, die angezeigt werden soll, um den grafischen Übertragungsbutton darzustellen. Siehe den image-Eingabetyp. id
-
Globales Attribut, gültig für alle Elemente, einschließlich aller Eingabetypen, definiert es einen eindeutigen Identifikator (ID), der im gesamten Dokument einzigartig sein muss. Zweck ist die Identifikation des Elements beim Verlinken. Der Wert wird als Wert des
for
-Attributs des<label>
-Tags verwendet, um das Label mit dem Formularelement zu verknüpfen. Siehe<label>
. inputmode
-
Globaler Wert, gültig für alle Elemente, bietet einen Hinweis an Browser, welche Art der virtuellen Tastaturkonfiguration bei der Bearbeitung dieses Elements oder seines Inhalts verwendet werden soll. Werte sind zum Beispiel
none
,text
,tel
,url
,email
,numeric
,decimal
undsearch
. list
-
Der für das
list
-Attribut angegebene Wert sollte dieid
eines<datalist>
-Elements sein, das sich im selben Dokument befindet. Das<datalist>
bietet eine Liste vordefinierter Werte, die dem Benutzer für diese Eingabe vorgeschlagen werden. Werte in der Liste, die mit demtype
nicht kompatibel sind, werden nicht in den vorgeschlagenen Optionen enthalten. Die bereitgestellten Werte sind Vorschläge, keine Anforderungen: Benutzer können aus dieser vordefinierten Liste wählen oder einen anderen Wert angeben.Es ist gültig bei
text
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
,range
undcolor
.Entsprechend den Spezifikationen wird das
list
-Attribut nicht unterstützt vonhidden
,password
,checkbox
,radio
,file
oder jede der Schaltflächenarten.Abhängig vom Browser kann der Benutzer eine benutzerdefinierte Farbpalette vorgeschlagen bekommen, Markierungen entlang eines Bereichs sehen oder sogar eine Eingabe, die wie ein
<select>
öffnet aber nicht aufgeführte Werte erlaubt. Siehe die Browser-Kompatibilitätstabelle für andere Eingabetypen.Siehe das
<datalist>
-Element. max
-
Gültig für
date
,month
,week
,time
,datetime-local
,number
, undrange
, definiert das Attribut den größten Wert im Bereich zugelassener Werte. Wenn der in das Element eingetragenevalue
diesen überschreitet, scheitert das Element an der Einschränkungsvalidierung. Wenn der Wert desmax
-Attributs keine Zahl ist, dann hat das Element keinen Maximalwert.Es gibt einen Sonderfall: Wenn der Datentyp periodisch ist (zum Beispiel für Daten oder Zeiten), kann der Wert von
max
niedriger als der Wert vonmin
sein, was darauf hinweist, dass der Bereich umschlagen kann; zum Beispiel erlaubt dies, einen Zeitbereich von 22 Uhr bis 4 Uhr festzulegen. maxlength
-
Gültig für
text
,search
,url
,tel
,email
, undpassword
, definiert das Attribut die maximale Zeichenlänge (gemessen in UTF-16-Codeeinheiten), die der Benutzer in das Feld eingeben kann. Dies muss ein Ganzzahlwert von 0 oder größer sein. Wenn keinmaxlength
angegeben ist oder ein ungültiger Wert angegeben ist, hat das Feld keine maximale Länge. Dieser Wert muss auch größer oder gleich dem Wert vonminlength
sein.Das Eingabefeld wird die Einschränkungsvalidierung nicht bestehen, wenn die Länge des eingegebenen Textes größer als
maxlength
UTF-16-Codeeinheiten ist. Standardmäßig verhindern Browser, dass Benutzer mehr Zeichen als durch dasmaxlength
-Attribut erlaubt eingegeben werden. Die Einschränkungsvalidierung wird nur angewendet, wenn sich der Wert durch den Benutzer ändert. Siehe Client-seitige Validierung für weitere Informationen. min
-
Gültig für
date
,month
,week
,time
,datetime-local
,number
, undrange
, definiert das Attribut den negativsten Wert im Bereich zulässiger Werte. Wenn der in das Element eingetragenevalue
niedriger als dieser ist, schlägt das Element die Einschränkungsvalidierung fehl. Wenn der Wert desmin
-Attributs keine Zahl ist, hat das Element keinen Minimalwert.Dieser Wert muss kleiner oder gleich dem Wert des
max
-Attributs sein. Wenn dasmin
-Attribut vorhanden ist, aber nicht spezifiziert oder ungültig ist, wird keinmin
Wert angewendet. Wenn dasmin
-Attribut gültig ist und ein nicht leerer Wert kleiner als das durch dasmin
-Attribut erlaubte Minimum ist, wird die Einschränkungsvalidierung die Formulareinreichung verhindern. Siehe Client-seitige Validierung für weitere Informationen.Es gibt einen Sonderfall: Wenn der Datentyp periodisch ist (zum Beispiel für Daten oder Zeiten), kann der Wert von
max
niedriger als der Wert vonmin
sein, was darauf hinweist, dass der Bereich umschlagen kann; zum Beispiel erlaubt dies, einen Zeitbereich von 22 Uhr bis 4 Uhr festzulegen. minlength
-
Gültig für
text
,search
,url
,tel
,email
, undpassword
, definiert das Attribut die minimale Zeichenlänge (gemessen in UTF-16-Codeeinheiten), die der Benutzer in das Eingabefeld eingeben kann. Dies muss ein nicht-negativer Ganzzahlwert kleiner oder gleich dem durchmaxlength
angegebenen Wert sein. Wenn keinminlength
angegeben ist oder ein ungültiger Wert angegeben ist, hat die Eingabe keine Mindestlänge.Die Eingabe wird die Einschränkungsvalidierung nicht bestehen, wenn die Länge des eingegebenen Textes kürzer als
minlength
UTF-16-Codeeinheiten ist, was die Formulareinreichung verhindert. Einschränkungsvalidierung wird nur angewendet, wenn sich der Wert durch den Benutzer ändert. Siehe Client-seitige Validierung für weitere Informationen. multiple
-
Das Boolean-Attribut
multiple
, wenn gesetzt, bedeutet, dass der Benutzer im E-Mail-Widget kommagetrennte E-Mail-Adressen eingeben oder mehr als eine Datei mit derfile
-Eingabe wählen kann. Siehe die email und file Eingabetypen. name
-
Ein String, der einen Namen für die Eingabesteuerung angibt. Dieser Name wird zusammen mit dem Wert der Steuerung übermittelt, wenn das Formular übermittelt wird.
Betrachten Sie das
name
-Attribut als erforderlich (obwohl es nicht ist). Wenn eine Eingabe keinenname
angegeben hat odername
leer ist, wird der Wert der Eingabe nicht mit dem Formular übermittelt! (Deaktivierte Steuerelemente, nicht markierte Optionsfelder, nicht markierte Kontrollkästchen und Reset-Tasten werden ebenfalls nicht gesendet.)Es gibt zwei Sonderfälle:
_charset_
: Wenn es als Name eines<input>
-Elements vom Typ hidden verwendet wird, wird dervalue
der Eingabe automatisch vom User-Agent auf die Zeichencodierung gesetzt, die zum Senden des Formulars verwendet wird.isindex
: Aus historischen Gründen ist der Nameisindex
nicht erlaubt.
Das
name
-Attribut erzeugt ein spezielles Verhalten für Optionen.Nur ein Optionsfeld in einer Gruppe gleichnamiger Optionsfelder kann gleichzeitig ausgewählt sein. Das Auswählen eines Optionsfelds in dieser Gruppe hebt automatisch die Auswahl eines derzeit ausgewählten Optionsfelds in derselben Gruppe auf. Der Wert dieses einen ausgewählten Optionsfelds wird zusammen mit dem Namen übermittelt, wenn das Formular übermittelt wird.
Wenn Sie eine Reihe gleichnamiger Gruppen von Optionsfeldern durchgehen, wird in den Fokus des ersten, der überprüft ist, genommen. Wenn sie nicht in der Quellreihenfolge gruppiert sind, beginnt das Tabulieren in die Gruppe, wenn der erste in der Gruppe erreicht wird, wobei alle übersprungen werden, die nicht überprüft sind. Mit anderen Worten, wenn einer geprüft wird, werden die nicht überprüften Optionsfelder in der Gruppe übersprungen. Wenn keiner geprüft ist, erhält die Optionsfeldgruppe den Fokus, wenn der erste in der gleichnamigen Gruppe erreicht wird.
Sobald eines der Optionsfelder in einer Gruppe den Fokus hat, navigieren die Pfeiltasten durch alle Optionsfelder des gleichen Namens, selbst wenn die Optionsfelder nicht zusammen in der Quellreihenfolge gruppiert sind.
Wenn ein Eingabefeld ein
name
-Attribut erhält, wird dieser Name zu einer Eigenschaft des EigentümerformularelementsHTMLFormElement.elements
-Eigenschaft. Wenn Sie eine Eingabe haben, derenname
aufguest
gesetzt ist und eine andere, derenname
hat-size
ist, kann folgender Code verwendet werden:jslet form = document.querySelector("form"); let guestName = form.elements.guest; let hatSize = form.elements["hat-size"];
Wenn dieser Code ausgeführt wurde, wird
guestName
dasHTMLInputElement
für dasguest
-Feld sein, undhatSize
das Objekt für dashat-size
-Feld.Warnung: Vermeiden Sie es, Formularelementen einen
name
zu geben, der mit einer eingebauten Eigenschaft des Formular übereinstimmt, da Sie dann die vordefinierte Eigenschaft oder Methode mit diesem Verweis auf die entsprechende Eingabe überschreiben würden. pattern
-
Gültig für
text
,search
,url
,tel
,email
, undpassword
, daspattern
-Attribut wird verwendet, um ein reguläres Ausdrucksmuster zu kompilieren, das dervalue
der Eingabe entsprechen muss, um die Einschränkungsvalidierung zu bestehen. Es muss ein gültiger JavaScript Regulärer Ausdruck sein, wie er vomRegExp
Typ verwendet wird und wie in unserem Leitfaden zu regulären Ausdrücken dokumentiert. Keine Schrägstriche sollten um den Mustertext angegeben werden. Beim Kompilieren des regulären Ausdrucks:- wird das Muster implizit mit
^(?:
und)$
umschlossen, sodass die Übereinstimmung gegen den gesamten Eingabewert erforderlich ist, d.h.^(?:<pattern>)$
. - wird das
'v'
Flag angegeben, sodass das Muster als Sequenz von Unicode-Codepunkten, und nicht als ASCII, behandelt wird.
Wenn das
pattern
-Attribut vorhanden, aber nicht spezifiziert oder ungültig ist, wird kein regulärer Ausdruck angewendet, und dieses Attribut wird vollständig ignoriert. Wenn das Musterattribut gültig ist und ein nicht leerer Wert nicht mit dem Muster übereinstimmt, wird die Einschränkungsvalidierung die Formulareinreichung verhindern. Wenn dasmultiple
vorhanden ist, wird der kompilierte reguläre Ausdruck gegen jeden kommagetrennten Wert abgeglichen.Hinweis: Wenn das
pattern
-Attribut verwendet wird, informieren Sie den Benutzer über das erwartete Format, indem Sie erklärenden Text in der Nähe bereitstellen. Sie können auch eintitle
-Attribut hinzufügen, um die Anforderungen zum Übereinstimmen mit dem Muster zu erklären; die meisten Browser zeigen diesen Titel als Tooltip an. Die sichtbare Erklärung ist erforderlich für die Zugänglichkeit. Der Tooltip ist eine Verbesserung.Siehe Client-seitige Validierung für weitere Informationen.
- wird das Muster implizit mit
placeholder
-
Gültig für
text
,search
,url
,tel
,email
,password
, undnumber
, bietet dasplaceholder
-Attribut einen kurzen Hinweis für den Benutzer, welche Art von Information im Feld erwartet wird. Es sollte ein Wort oder eine kurze Phrase sein, die einen Hinweis auf die erwartete Art der Daten gibt, anstatt einer Erklärung oder Aufforderung. Der Text darf keine Wagenrücklauf- oder Zeilenumbruchszeichen enthalten. Wenn beispielsweise erwartet wird, dass ein Feld den Vornamen eines Benutzers erfasst und dessen Etikett "Vorname" lautet, könnte ein geeigneter Platzhalter "z.B. Mustafa" sein.Hinweis: Das
placeholder
-Attribut ist nicht so semantisch nützlich wie andere Möglichkeiten, Ihr Formular zu erklären, und kann unerwartete technische Probleme mit Ihrem Inhalt verursachen. Siehe Label für weitere Informationen. popovertarget
-
Wandelt ein
<input type="button">
-Element in eine Knopf-Steuerung für Popover um; nimmt die ID des Popover-Elements als Wert. Siehe die Popover API Übersichtsseite für mehr Details. Das Herstellen einer Beziehung zwischen einem Popover und seinem Invoker-Button mit dempopovertarget
-Attribut hat zwei zusätzliche nützliche Effekte:- Der Browser erstellt eine implizite
aria-details
undaria-expanded
Beziehung zwischen Popover und Invoker und platziert das Popover in einer logischen Position in der Tastaturnavigationsreihenfolge, wenn es angezeigt wird. Dies macht das Popover zugänglicher für Tastatur- und Hilfsgerät-(AT) Benutzer (siehe auch Popover Zugänglichkeitsmerkmale). - Der Browser erstellt einen impliziten Ankerbezug zwischen den beiden, was es sehr praktisch macht, Popover relativ zu ihren Kontrollen mithilfe von CSS Ankerpositionierung zu positionieren. Siehe Popover Ankerpositionierung für mehr Details.
- Der Browser erstellt eine implizite
popovertargetaction
-
Gibt die Aktion an, die auf ein durch ein Steuerelement
<input type="button">
gesteuertes Popover-Element ausgeführt werden soll. Mögliche Werte sind:"hide"
-
Der Knopf wird ein gezeigtes Popover verbergen. Versuchen Sie, ein bereits verborgenes Popover zu verstecken, wird keine Aktion durchgeführt.
"show"
-
Der Knopf wird ein verborgenes Popover zeigen. Versuchen Sie, ein bereits sichtbares Popover zu zeigen, wird keine Aktion durchgeführt.
"toggle"
-
Der Knopf wird ein Popover zwischen Sichtbarkeit und Unsichtbarkeit umschalten. Wird das Popover verborgen, wird es angezeigt; wenn das Popover angezeigt wird, wird es verborgen. Falls
popovertargetaction
ausgelassen wird, ist"toggle"
die Standardaktion, die durch den Steuerknopf ausgeführt wird.
readonly
-
Ein Boolean-Attribut, das, falls vorhanden, anzeigt, dass der Benutzer den Wert der Eingabe nicht bearbeiten darf. Das
readonly
-Attribut wird von den Eingabetypentext
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
, undpassword
unterstützt.Siehe das HTML-Attribut:
readonly
für weitere Informationen. required
-
required
ist ein Boolean-Attribut, das, falls vorhanden, anzeigt, dass der Benutzer einen Wert für die Eingabe angeben muss, bevor das Eigentümerformular übermittelt werden kann. Dasrequired
-Attribut wird von den Eingabetypentext
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
,password
,checkbox
,radio
, undfile
unterstützt.Siehe Client-seitige Validierung und das HTML-Attribut:
required
für weitere Informationen. size
-
Gültig für
email
,password
,tel
,url
, undtext
, dassize
-Attribut bestimmt, wie viel der Eingabe angezeigt wird. Im Grunde genommen schafft es dasselbe Ergebnis wie das Setzen der CSS-Eigenschaftwidth
mit ein paar Besonderheiten. Die tatsächliche Einheit des Wertes hängt vom Eingabetyp ab. Beipassword
undtext
ist es eine Zeichenanzahl (oderem
Einheiten) mit einem Standardwert von20
, und für andere ist es Pixel (oderpx
Einheiten). Die CSS-Eigenschaftwidth
hat Vorrang über dassize
-Attribut. src
-
Nur gültig für den Bild-Button, das
src
ist ein String, der die URL der Bilddatei angibt, die angezeigt werden soll, um den grafischen Übertragungsbutton darzustellen. Siehe den image-Eingabetyp. step
-
Gültig für
date
,month
,week
,time
,datetime-local
,number
, undrange
, dasstep
-Attribut ist eine Zahl, die die Granularität bestimmt, die der Wert einhalten muss.Wenn nicht explizit enthalten:
step
default auf 1 fürnumber
undrange
.- Jeder date/time Eingabetyp hat einen Standard-
step
-Wert, der für den Typ angemessen ist, siehe die Einzelseiten:date
,datetime-local
,month
,time
, undweek
.
Der Wert muss eine positive Zahl—Ganzzahl oder Fließkommazahlen—sein oder der spezielle Wert
any
, was bedeutet, dass kein Trittbrettfahren impliziert ist, und jeder Wert zulässig ist (abgesehen von anderen Einschränkungen wiemin
undmax
).Wenn
any
nicht explizit gesetzt ist, sind gültige Werte für dienumber
, date/time Eingabetypen, undrange
Eingabetypen gleich der Grundlage für das Schritte—dermin
Wert und Inkremente des Schrittwertes, bis zummax
Wert, wenn angegeben.Zum Beispiel, wenn Sie
<input type="number" min="10" step="2">
haben, ist jede gerade Ganzzahl,10
oder größer, gültig. Wenn ausgelassen,<input type="number">
, ist jede Ganzzahl gültig, aber Fließkommazahlen (wie4.2
) sind nicht gültig, weilstep
standardmäßig1
ist. Für4.2
, um gültig zu sein, hättestep
aufany
, 0.1, 0.2, oder irgendeinmin
Wert hätte eine Zahl sein müssen, die auf.2
endet, so wie<input type="number" min="-5.2">
Hinweis: Wenn die durch den Benutzer eingegebenen Daten nicht mit der Schritte-Konfiguration übereinstimmt, wird der Wert in der Einschränkungsvalidierung als ungültig betrachtet und wird das
:invalid
Pseudoklasse übereinstimmen.Siehe Client-seitige Validierung für weitere Informationen.
tabindex
-
Globales Attribut, gültig für alle Elemente, einschließlich aller Eingabetypen, ein Integer-Attribut, das angibt, ob das Element Eingabefokus annehmen kann (fokussierbar ist), wenn es an sequentieller Tastaturnavigation teilnehmen soll. Da alle Eingabetypen außer Eingaben des Typs versteckt fokusierbar sind, sollte dieses Attribut nicht auf Formularelementen verwendet werden, denn dies würde das Verwalten der Fokusreihenfolge für alle Elemente im Dokument erfordern mit dem Risiko der Beeinträchtigung der Benutzerfreundlichkeit und Zugänglichkeit, wenn nicht korrekt durchgeführt.
title
-
Globales Attribut, gültig für alle Elemente, einschließlich aller Eingabetypen, das einen Text enthält, der Beratungsinformationen zu dem Element, zu dem es gehört, repräsentiert. Solche Informationen können typischerweise, aber nicht notwendigerweise, dem Benutzer als Tooltip angezeigt werden. Der Titel sollte NICHT als primäre Erklärung des Zwecks des Formularelements verwendet werden. Verwenden Sie stattdessen das
<label>
-Element mit einemfor
-Attribut, das auf dasid
-Attribut des Formularelements gesetzt ist. Siehe Label unten. type
-
Ein String, der den Typ der zu rendernden Steuerung angibt. Um beispielsweise ein Kontrollkästchen zu erstellen, wird ein Wert von
checkbox
verwendet. Falls weggelassen (oder ein unbekannter Wert angegeben wird), wird dertext
Eingabetyp verwendet, das ein Klartexteingabefeld erzeugt.Zulässige Werte sind in Input Typen oben aufgelistet.
value
-
Der Wert des Eingabesteuerung. Wenn im HTML angegeben, ist dies der Anfangswert, und dann kann er jederzeit geändert oder abgerufen werden, indem JavaScript verwendet wird, um auf die entsprechende
HTMLInputElement
-Objektvalue
-Eigenschaft zuzugreifen. Dasvalue
-Attribut ist immer optional, sollte jedoch als obligatorisch fürcheckbox
,radio
undhidden
betrachtet werden. width
-
Nur gültig für den Bild-Button, die
width
ist die Breite der Bilddatei, die angezeigt werden soll, um den grafischen Übertragungsbutton darzustellen. Siehe den image-Eingabetyp.
Nicht standardisierte Attribute
Die folgenden nicht standardisierten Attribute sind auch in einigen Browsern verfügbar. Als allgemeine Regel sollten Sie sie vermeiden, es sei denn, es lässt sich nicht vermeiden.
Attribut | Beschreibung |
---|---|
incremental |
Ob wiederholt [`search`](/de/docs/Web/API/HTMLInputElement/search_event)-Ereignisse gesendet werden sollen, um Live-Suchergebnisse zu aktualisieren, während der Benutzer noch den Wert des Feldes bearbeitet. Nur WebKit und Blink (Safari, Chrome, Opera, etc.). |
mozactionhint
Veraltet
|
Ein String, der die Art der Aktion anzeigt, die ausgeführt wird, wenn der Benutzer
die Enter- oder Return-Taste drückt, während das
Feld bearbeitet wird; dies wird verwendet, um ein geeignetes Label für diese
Taste auf einer virtuellen Tastatur zu bestimmen. Da dieses Attribut veraltet ist, verwenden Sie |
orient |
Setzt die Orientierung des Bereichsschiebers. Nur Firefox. |
results |
Die maximale Anzahl an Elementen, die in der Dropdown-Liste vorheriger Suchanfragen angezeigt werden sollten. Nur Safari. |
webkitdirectory
|
Ein Boolean, der anzeigt, ob dem Benutzer nur erlaubt werden soll, ein Verzeichnis (oder mehrere, wenn multiple auch vorhanden ist) auszuwählen.
|
incremental
Nicht standardisiert-
Das Boolean-Attribut
incremental
ist eine Erweiterung von WebKit und Blink (daher wird es von Safari, Opera, Chrome, etc. unterstützt), die, falls vorhanden, dem User-Agent sagt, die Eingabe als Live-Suche zu verarbeiten. Während der Benutzer den Wert des Feldes bearbeitet, sendet der User-Agentsearch
Ereignisse an dasHTMLInputElement
-Objekt, das das Suchfeld darstellt. Dies ermöglicht Ihrem Code, die Suchergebnisse in Echtzeit zu aktualisieren, während der Benutzer die Suche bearbeitet.Falls
incremental
nicht festgelegt ist, wird dassearch
-Ereignis nur gesendet, wenn der Benutzer die Suche explizit einleitet (zum Beispiel durch Drücken der Enter- oder Return-Taste, während das Feld bearbeitet wird).Das
search
Ereignis wird so begrenzt, dass es nicht häufiger als in einem implementierungsdefinierten Intervall gesendet wird. orient
Nicht standardisiert-
Ähnlich dem nicht standardkonformen CSS-Eigenschaft -moz-orient, das die
<progress>
- und<meter>
-Elemente beeinflusst, definiert dasorient
-Attribut die Orientierung des Bereichsschiebers. Werte schließenhorizontal
ein, was bedeutet, dass der Bereich horizontal gerendert wird, undvertical
, wobei der Bereich vertikal gerendert wird. Siehe Erstellen vertikaler Formularelemente für einen modernen Ansatz zur Erstellung vertikaler Formularelemente. results
Nicht standardisiert-
Das in Safari unterstützte
results
-Attribut ist ein numerischer Wert, der es Ihnen erlaubt, die maximale Anzahl an Einträgen zu überschreiben, die in der nativ bereitgestellten Dropdown-Liste des<input>
-Elements für frühere Suchanfragen angezeigt werden soll.Der Wert muss eine nicht-negative Dezimalzahl sein. Wenn nicht angegeben oder ein ungültiger Wert angegeben wird, wird die Standardmaximalzahl an Einträgen des Browsers verwendet.
webkitdirectory
Nicht standardisiert-
Das Boolean-Attribut
webkitdirectory
, wenn vorhanden, zeigt an, dass nur Verzeichnisse im Dateiauswahldialog verfügbar sein sollen, um vom Benutzer ausgewählt zu werden. SieheHTMLInputElement.webkitdirectory
für zusätzliche Details und Beispiele.Obwohl ursprünglich nur für WebKit-basierte Browser implementiert, ist
webkitdirectory
auch in Microsoft Edge und seit Firefox 50 und höher verwendbar. Auch wenn es relativ breit unterstützt wird, ist es noch nicht standardisiert und sollte nicht verwendet werden, es sei denn, Sie haben keine Alternative.
Methoden
Die folgenden Methoden werden von der HTMLInputElement
-Schnittstelle bereitgestellt, die <input>
-Elemente im DOM darstellt. Außerdem sind die von den Elternschnittstellen, HTMLElement
, Element
, Node
, und EventTarget
spezifizierten Methoden verfügbar.
checkValidity()
-
Gibt
true
zurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht; ansonsten gibt esfalse
zurück und feuert eininvalid
-Ereignis im Element aus. reportValidity()
-
Gibt
true
zurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht; ansonsten gibt esfalse
zurück, feuert eininvalid
-Ereignis im Element aus und meldet (falls das Ereignis nicht abgebrochen wird) das Problem dem Benutzer. select()
-
Wählt den gesamten Inhalt des
<input>
-Elements aus, falls der Inhalt des Elements auswählbar ist. Bei Elementen mit keinem auswählbaren Textinhalt (wie ein visueller Farbwähler oder eine Kalenderdatums-Eingabe) tut diese Methode nichts. setCustomValidity()
-
Setzt eine benutzerdefinierte Nachricht, die angezeigt wird, wenn der Wert des Eingabeelements nicht gültig ist.
setRangeText()
-
Setzt den Inhalt des spezifizierten Zeichenbereichs im Eingabeelement auf einen angegebenen String. Ein
selectMode
-Parameter ist verfügbar, um zu kontrollieren, wie der vorhandene Inhalt betroffen ist. setSelectionRange()
-
Wählt den spezifizierten Zeichenbereich innerhalb eines textlichen Eingabeelements aus. Macht nichts für Eingaben, die nicht als Texteingabefelder präsentiert werden.
showPicker()
-
Zeigt den Browserwähler für das Eingabeelement an, der normalerweise angezeigt wird, wenn das Element ausgewählt wird, aber ausgelöst durch das Drücken eines Buttons oder eine andere Benutzerinteraktion.
stepDown()
-
Verringert den Wert einer numerischen Eingabe um eins, standardmäßig, oder durch die angegebene Anzahl von Einheiten.
stepUp()
-
Erhöht den Wert einer numerischen Eingabe um eins oder durch die angegebene Anzahl von Einheiten.
CSS
Inputs, als ersetzte Elemente, haben einige Eigenschaften, die für Nicht-Formularelemente nicht zutreffen. Es gibt CSS-Selektoren, die gezielt Formularelemente basierend auf ihren UI-Eigenschaften ansprechen können, auch bekannt als UI-Pseudoklassen. Das Input-Element kann auch anhand des Typs mit Attributselektoren angesprochen werden. Einige Eigenschaften sind dabei besonders nützlich.
UI-Pseudoklassen
Pseudoklasse | Beschreibung |
---|---|
:enabled |
Jedes aktuell aktivierte Element, das aktiviert (ausgewählt, angeklickt, eingetippt etc.) oder fokussiert werden kann und auch einen deaktivierten Zustand hat, in dem es nicht aktiviert oder fokussiert werden kann. |
:disabled |
Jedes aktuell deaktivierte Element, das einen aktivierten Zustand hat, d.h. es könnte sonst aktiviert (ausgewählt, angeklickt, eingetippt etc.) oder fokussiert werden, wäre es nicht deaktiviert. |
:read-only |
Element, das vom Benutzer nicht bearbeitet werden kann |
:read-write |
Element, das vom Benutzer bearbeitet werden kann. |
:placeholder-shown |
Element, das momentan placeholder -Text anzeigt, inkl. <input> und <textarea> -Elementen mit dem placeholder -Attribut, das noch keinen Wert hat.
|
:default |
Formularelemente, die der Standard in einer Gruppe verwandter Elemente sind. Passt zu checkbox- und radio-Input-Typen, die beim Seitenladen oder beim Rendern markiert wurden. |
:checked |
Passt zu checkbox- und radio-Input-Typen, die aktuell markiert sind (und das <option> in einem <select> , das derzeit ausgewählt ist).
|
:indeterminate |
checkbox-Elemente, deren indeterminate-Eigenschaft durch JavaScript auf wahr gesetzt ist, radio-Elemente, wenn alle Radio-Buttons mit demselben Namenswert im Formular nicht markiert sind, und <progress> -Elemente im unbestimmten Zustand
|
:valid |
Formularelemente, auf die eine Constraint-Validierung angewendet werden kann und die derzeit gültig sind. |
:invalid |
Formularelemente, auf die eine Constraint-Validierung angewendet wird und die derzeit ungültig sind. Passt zu einem Formularelement, dessen Wert nicht mit den durch seine Attribute gesetzten Einschränkungen übereinstimmt, wie required , pattern , step und max .
|
:in-range |
Ein nicht-leeres Input, dessen aktueller Wert innerhalb der durch die min - und max -Attribute sowie step spezifizierten Bereichsgrenzen liegt.
|
:out-of-range |
Ein nicht-leeres Input, dessen aktueller Wert NICHT innerhalb der durch die min - und max -Attribute angegebenen Bereichsgrenzen liegt oder nicht dem step -Constraint entspricht.
|
:required |
<input> , <select> , oder <textarea> -Element, das das required -Attribut gesetzt hat.
Passt nur zu Elementen, die erforderlich sein können.
Das Attribut auf einem nicht erforderlichen Element führt zu keiner Übereinstimmung.
|
:optional |
<input> , <select> , oder <textarea> -Element, das das required -Attribut NICHT gesetzt hat.
Passt nicht zu Elementen, die nicht erforderlich sein können.
|
:blank |
<input> und <textarea> -Elemente, die momentan keinen Wert haben.
|
:user-invalid |
Ähnlich wie :invalid , wird aber bei Blur aktiviert. Passt zu ungültigem Input, aber nur nach Benutzerinteraktion, z.B. durch Fokussieren auf das Steuerelement, Verlassen des Steuerelements oder Versuch, das Formular mit dem ungültigen Steuerelement abzusenden.
|
:open |
<input> -Elemente, die einen Picker anzeigen, aus dem der Benutzer einen Wert auswählen kann (z.B. <input type="color"> ) — jedoch nur, wenn das Element im offenen Zustand ist, d.h. wenn der Picker angezeigt wird.
|
Beispiel für Pseudoklassen
Wir können das Label eines Auswahlkästchens basierend darauf stylen, ob das Kästchen markiert ist oder nicht. In diesem Beispiel stylen wir die color
und font-weight
des <label>
, das unmittelbar nach einem markierten Input folgt. Wir haben keine Stile angewendet, wenn das input
nicht markiert ist.
input:checked + label {
color: red;
font-weight: bold;
}
Attributselektoren
Es ist möglich, verschiedene Arten von Formularelementen basierend auf ihrem type
mit Attributselektoren gezielt anzusprechen. CSS-Attributselektoren passen zu Elementen basierend auf der bloßen Existenz eines Attributs oder dem Wert eines bestimmten Attributs.
/* matches a password input */
input[type="password"] {
}
/* matches a form control whose valid values are limited to a range of values*/
input[min][max] {
}
/* matches a form control with a pattern attribute */
input[pattern] {
}
::placeholder
Standardmäßig erscheint der Platzhaltertext in einem durchscheinenden oder hellgrauen Ton. Das ::placeholder
-Pseudoelement ist der placeholder
-Text des Inputs. Es kann mit einem begrenzten Satz an CSS-Eigenschaften gestylt werden.
::placeholder {
color: blue;
}
Nur der Teil der CSS-Eigenschaften, der auf das ::first-line
-Pseudoelement angewendet werden kann, kann in einer Regel verwendet werden, die ::placeholder
im Selektor hat.
appearance
Die appearance
-Eigenschaft ermöglicht es, (fast) jedes Element in einem plattform-eigenen Stil basierend auf dem Betriebssystem-Thema anzuzeigen sowie jede nativen Plattform-Stile mit dem Wert none
zu entfernen.
Sie könnten ein <div>
wie ein Auswahlkästchen aussehen lassen, indem Sie div {appearance: radio;}
setzen oder ein Radio wie ein Kontrollkästchen mit [type="radio"] {appearance: checkbox;}
, aber tun Sie das nicht.
Wenn Sie appearance: none
setzen, werden die plattformnativen Ränder entfernt, jedoch nicht die Funktionalität.
caret-color
Eine Eigenschaft, die speziell für texteingabebezogene Elemente genutzt werden kann, ist die CSS-caret-color
-Eigenschaft, mit der Sie die Farbe des Texteingabe-Cursors festlegen können:
HTML
<label for="textInput">Note the red caret:</label>
<input id="textInput" class="custom" size="32" />
CSS
input.custom {
caret-color: red;
font:
16px "Helvetica",
"Arial",
"sans-serif";
}
Ergebnis
field-sizing
Die field-sizing
-Eigenschaft ermöglicht es Ihnen, das Größenverhalten von Formulareingaben zu steuern (d.h. sie erhalten standardmäßig eine bevorzugte Größe). Diese Eigenschaft ermöglicht es Ihnen, das Standardverhalten zu überschreiben und Formularelemente in ihrer Größe an ihren Inhalt anzupassen.
Diese Eigenschaft wird typischerweise verwendet, um Formularfelder zu erstellen, die sich an ihren Inhalt anpassen und mit zunehmendem Text wachsen. Dies funktioniert mit Eingabetypen, die direkte Texteingabe akzeptieren (zum Beispiel, text
und url
), Eingabetyp file
und <textarea>
-Elemente.
object-position und object-fit
In bestimmten Fällen (typischerweise bei nicht-textlichen Eingaben und spezialisierten Schnittstellen) ist das <input>
-Element ein ersetztes Element. Wenn es das ist, können die Position und die Größe des Elements sowie die Positionierung innerhalb seines Rahmens mit den CSS-Eigenschaften object-position
und object-fit
angepasst werden.
Styling
Weitere Informationen zum Hinzufügen von Farben zu HTML-Elementen finden Sie unter:
Siehe auch:
Weitere Eigenschaften
Labels
Labels sind notwendig, um erläuternden Text mit einem <input>
zu verbinden. Das <label>
-Element liefert erklärende Informationen über ein Formularfeld, die immer angemessen sind (abgesehen von Layoutaspekten). Es ist nie eine schlechte Idee, ein <label>
zu verwenden, um zu erklären, was in ein <input>
oder <textarea>
eingegeben werden soll.
Zugeordnete Labels
Die semantische Paarung von <input>
- und <label>
-Elementen ist nützlich für Technologien für Barrierefreiheit, wie Screenreader. Indem Sie sie mit dem [for
](<a href="/de/docs/Web/HTML/Element/label#for) for
-Attribut eines <label>
verbinden, verbinden Sie das Label mit dem Input auf eine Weise, die es Screenreadern erlaubt, Benutzer die Eingaben präziser zu beschreiben.
Es reicht nicht aus, einfachen Text neben das <input>
-Element zu stellen. Vielmehr erfordern Benutzbarkeit und Zugangsfähigkeit die Einbeziehung eines impliziten oder expliziten <label>
:
<!-- inaccessible -->
<p>Enter your name: <input id="name" type="text" size="30" /></p>
<!-- implicit label -->
<p>
<label>Enter your name: <input id="name" type="text" size="30" /></label>
</p>
<!-- explicit label -->
<p>
<label for="name">Enter your name: </label>
<input id="name" type="text" size="30" />
</p>
Das erste Beispiel ist unzugänglich: Es existiert keine Beziehung zwischen der Eingabeaufforderung und dem <input>
-Element.
Zusätzlich zu einem zugänglichen Namen bietet das Label eine größere "Trefferfläche" für Maus- und Touchscreen-Benutzer, um darauf zu klicken oder zu tippen. Durch das Verbinden eines <label>
- mit einem <input>
-Element fokussiert das Klicken auf eines von beiden das <input>
. Wenn Sie einfachen Text verwenden, um Ihr Input zu "labeln", wird dies nicht passieren. Dass die Eingabeaufforderung Teil der Aktivierungsfläche für das Input ist, ist hilfreich für Menschen mit motorischen Beeinträchtigungen.
Als Webentwickler ist es wichtig, dass wir niemals annehmen, dass Menschen all die Dinge wissen, die wir wissen. Die Vielfalt der Personen, die das Web nutzen — und davon abgeleitet Ihre Website — garantiert praktisch, dass einige Besucher Ihrer Website einige Gedankenprozesse und/oder Umstände haben werden, die sie dazu bringen, Ihre Formulare sehr unterschiedlich von Ihnen zu interpretieren, wenn keine klaren und richtig präsentierten Labels vorhanden sind.
Platzhalter sind nicht zugänglich
Das placeholder
-Attribut ermöglicht es Ihnen, Text anzugeben, der im Inhaltsbereich des <input>
-Elements selbst erscheint, wenn es leer ist. Der Platzhalter sollte niemals nötig sein, um Ihre Formulare zu verstehen. Es ist kein Label und sollte nicht als Ersatz verwendet werden, weil es keins ist. Der Platzhalter wird verwendet, um einen Hinweis zu geben, wie ein eingegebener Wert aussehen sollte, nicht als Erklärung oder Aufforderung.
Der Platzhalter ist nicht zugänglich für Screenreader, und sobald der Benutzer Text in das Formularelement eingibt oder wenn das Formularelement bereits einen Wert hat, verschwindet der Platzhalter. Browser mit automatischen Seitenübersetzungsfunktionen können Attribute beim Übersetzen überspringen, was bedeutet, dass der placeholder
möglicherweise nicht übersetzt wird.
Hinweis:
Verwenden Sie das placeholder
-Attribut nicht, wenn Sie es vermeiden können. Wenn Sie ein <input>
-Element labeln müssen, verwenden Sie das <label>
-Element.
Clientseitige Validierung
Warnung:
Clientseitige Validierung ist nützlich, garantiert aber nicht, dass der Server gültige Daten erhält. Wenn die Daten ein spezifisches Format haben müssen, überprüfen Sie sie immer auch auf der Serverseite und geben Sie eine 400
-HTTP-Antwort zurück, wenn das Format ungültig ist.
Zusätzlich zur Verwendung von CSS, um Inputs basierend auf den :valid
- oder :invalid
-UI-Zuständen basierend auf dem aktuellen Zustand jedes Inputs zu stylen, stellt der Browser auch eine clientseitige Validierung beim (versuchten) Absenden von Formularen bereit. Beim Absenden eines Formulars, wenn es ein Formularelement gibt, das die Constraint-Validierung nicht erfüllt, zeigt der unterstützende Browser eine Fehlermeldung auf dem ersten ungültigen Formularelement an; wobei eine Standardnachricht basierend auf dem Fehlerart oder eine von Ihnen festgelegte Nachricht angezeigt wird.
Einige Input-Typen und andere Attribute begrenzen, welche Werte für ein gegebenes Input gültig sind. Zum Beispiel bedeutet <input type="number" min="2" max="10" step="2">
, dass nur die Zahlen 2, 4, 6, 8 oder 10 gültig sind. Mehrere Fehler könnten auftreten, einschließlich eines rangeUnderflow
-Fehlers, wenn der Wert kleiner als 2 ist, rangeOverflow
, wenn er größer als 10 ist, stepMismatch
, wenn der Wert eine Zahl zwischen 2 und 10 ist, aber keine gerade ganze Zahl (nicht den Anforderungen des step
-Attributs entspricht), oder typeMismatch
, wenn der Wert keine Zahl ist.
Für die Input-Typen, deren Wertebereich periodisch ist (das heißt, beim höchsten möglichen Wert wickeln sich die Werte wieder zu Beginn zurück, anstatt zu enden), ist es möglich, dass die Werte der max
- und min
-Eigenschaften umgekehrt werden, was angibt, dass der erlaubte Wertebereich bei min
beginnt, um die niedrigsten möglichen Werte umgewandelt wird und dann weitergeht, bis max
erreicht ist. Dies ist besonders nützlich für Daten und Zeiten, zum Beispiel, wenn Sie möchten, dass der Bereich von 20 Uhr bis 8 Uhr zulässig ist:
<input type="time" min="20:00" max="08:00" name="overnight" />
Spezifische Attribute und ihre Werte können zu einem bestimmten Fehler führen, dem ValidityState
:
Attribut | Relevante Eigenschaft | Beschreibung |
---|---|---|
max |
[`validityState.rangeOverflow`](/de/docs/Web/API/ValidityState/rangeOverflow) |
Tritt auf, wenn der Wert größer als der maximale Wert ist, der durch das max -Attribut definiert ist
|
maxlength |
[`validityState.tooLong`](/de/docs/Web/API/ValidityState/tooLong) |
Tritt auf, wenn die Anzahl der Zeichen größer als die vom maxlength -Attribut erlaubte Anzahl ist
|
min |
[`validityState.rangeUnderflow`](/de/docs/Web/API/ValidityState/rangeUnderflow) |
Tritt auf, wenn der Wert kleiner als der minimale Wert ist, der durch das min -Attribut definiert ist
|
minlength |
[`validityState.tooShort`](/de/docs/Web/API/ValidityState/tooShort) |
Tritt auf, wenn die Anzahl der Zeichen kleiner als die vom minlength -Attribut geforderte Anzahl ist
|
pattern |
[`validityState.patternMismatch`](/de/docs/Web/API/ValidityState/patternMismatch) |
Tritt auf, wenn ein pattern -Attribut mit einem gültigen regulären Ausdruck enthalten ist und der value ihm nicht entspricht.
|
required |
[`validityState.valueMissing`](/de/docs/Web/API/ValidityState/valueMissing) |
Tritt auf, wenn das required -Attribut vorhanden ist, der Wert jedoch null ist oder das Radio oder Checkbox nicht markiert sind.
|
step |
[`validityState.stepMismatch`](/de/docs/Web/API/ValidityState/stepMismatch) |
Der Wert entspricht nicht dem Schrittinkrement. Der Standardwert für das Inkrement ist 1 , daher sind nur ganze Zahlen bei type="number" gültig, wenn step nicht enthalten ist. step="any" wird diesen Fehler niemals auslösen.
|
type |
[`validityState.typeMismatch`](/de/docs/Web/API/ValidityState/typeMismatch) |
Tritt auf, wenn der Wert nicht vom richtigen Typ ist, zum Beispiel wenn eine E-Mail kein @ enthält oder eine URL kein Protokoll.
|
Wenn ein Formularelement nicht das required
-Attribut hat, ist kein Wert oder eine leere Zeichenfolge nicht ungültig. Auch wenn die oben genannten Attribute vorhanden sind, ist eine leere Zeichenfolge mit Ausnahme von required
kein Fehler.
Wir können Grenzen für die akzeptierten Werte setzen, und unterstützende Browser werden diese Formularwerte nativ validieren und den Benutzer bei einem Fehler alarmieren, wenn das Formular eingereicht wird.
Zusätzlich zu den in der obigen Tabelle beschriebenen Fehlern enthält die validityState
-Schnittstelle die booleschen readonly-Eigenschaften badInput
, valid
und customError
. Das Gültigkeitsobjekt umfasst:
validityState.valueMissing
validityState.typeMismatch
validityState.patternMismatch
validityState.tooLong
validityState.tooShort
validityState.rangeUnderflow
validityState.rangeOverflow
validityState.stepMismatch
validityState.badInput
validityState.valid
validityState.customError
Für jede dieser booleschen Eigenschaften zeigt ein Wert von true
an, dass der angegebene Grund für eine mögliche Validierungsfehlstellung zutrifft, mit Ausnahme der valid
-Eigenschaft, die true
ist, wenn der Wert des Elements alle Constraints einhält.
Wenn es einen Fehler gibt, alarmieren unterstütztende Browser sowohl den Benutzer als auch verhindern, dass das Formular eingereicht wird. Ein Wort der Vorsicht: Wenn ein benutzerdefinierter Fehler auf einen wahrheitswert ist (alles außer der leeren Zeichenfolge oder null
), wird das Formular an der Einreichung gehindert. Wenn keine benutzerdefinierte Fehlermeldung vorliegt und keine der anderen Eigenschaften wahr ist, wird valid
wahr sein und das Formular kann gesendet werden.
function validate(input) {
let validityState_object = input.validity;
if (validityState_object.valueMissing) {
input.setCustomValidity("A value is required");
} else if (validityState_object.rangeUnderflow) {
input.setCustomValidity("Your value is too low");
} else if (validityState_object.rangeOverflow) {
input.setCustomValidity("Your value is too high");
} else {
input.setCustomValidity("");
}
}
Die letzte Zeile, die die benutzerdefinierte Gültigkeitsnachricht auf die leere Zeichenfolge setzt, ist entscheidend. Wenn der Benutzer einen Fehler macht und die Gültigkeit gesetzt ist, wird es nicht gesendet, auch wenn alle Werte gültig sind, bis die Nachricht null
ist.
Beispiel für benutzerdefinierte Validierungsfehler
Wenn Sie eine benutzerdefinierte Fehlermeldung anzeigen möchten, wenn ein Feld die Validierung nicht besteht, müssen Sie die Constraint Validation API verwenden, die auf <input>
(und verwandte) Elemente anwendbar ist. Nehmen Sie das folgende Formular:
<form>
<label for="name">Enter username (upper and lowercase letters): </label>
<input type="text" name="name" id="name" required pattern="[A-Za-z]+" />
<button>Submit</button>
</form>
Die grundlegenden HTML-Formularvalidierungsfunktionen führen dazu, dass eine Standardfehlermeldung angezeigt wird, wenn Sie versuchen, das Formular ohne gültige Eingaben oder mit einem Wert, der nicht zum pattern
passt, zu senden.
Wenn Sie stattdessen benutzerdefinierte Fehlermeldungen anzeigen möchten, könnten Sie JavaScript wie folgt verwenden:
const nameInput = document.querySelector("input");
nameInput.addEventListener("input", () => {
nameInput.setCustomValidity("");
nameInput.checkValidity();
});
nameInput.addEventListener("invalid", () => {
if (nameInput.value === "") {
nameInput.setCustomValidity("Enter your username!");
} else {
nameInput.setCustomValidity(
"Usernames can only contain upper and lowercase letters. Try again!",
);
}
});
Das Beispiel wird wie folgt gerendert:
Kurz gesagt:
- Wir überprüfen den gültigen Zustand des Eingabeelements jedes Mal, wenn sich sein Wert ändert, indem wir die
checkValidity()
-Methode über deninput
-Ereignishandler ausführen. - Wenn der Wert ungültig ist, wird ein
invalid
-Ereignis ausgelöst und dieinvalid
-Ereignishandlerfunktion ausgeführt. In dieser Funktion überprüfen wir, ob der Wert wegen Leere oder wegen Nichtübereinstimmung mit dem Muster ungültig ist, indem wir einenif ()
-Block verwenden und eine benutzerdefinierte Fehlermeldung setzen. - Infolgedessen wird, wenn der Eingabewert ungültig ist, wenn der Senden-Button gedrückt wird, eine der benutzerdefinierten Fehlermeldungen angezeigt.
- Wenn er gültig ist, wird er wie erwartet gesendet. Damit das passiert, muss die benutzerdefinierte Gültigkeit durch das Aufrufen von
setCustomValidity()
mit einem leeren Zeichenfolgenwert abgebrochen werden. Dies tun wir daher jedes Mal, wenn dasinput
-Ereignis ausgelöst wird. Wenn Sie dies nicht tun und eine benutzerdefinierte Gültigkeit zuvor gesetzt wurde, wird die Eingabe als ungültig registriert, auch wenn sie derzeit einen gültigen Wert bei der Einreichung enthält.
Hinweis: Validieren Sie immer Eingabebeschränkungen sowohl clientseitig als auch serverseitig. Die Constraint-Validierung beseitigt nicht die Notwendigkeit der Validierung auf der Server-Seite. Ungültige Werte können weiterhin von älteren Browsern oder Angreifern gesendet werden.
Hinweis:
Firefox unterstützte ein proprietäres Fehlerattribut - x-moz-errormessage
- über viele Versionen hinweg, das es Ihnen ermöglichte, benutzerdefinierte Fehlermeldungen ähnlich zu setzen. Dies wurde ab Version 66 entfernt (siehe Firefox-Fehler 1513890).
Lokalisierung
Die erlaubten Eingaben für bestimmte <input>
-Typen hängen von der Sprache ab. In einigen Regionen ist 1.000,00 eine gültige Zahl, während in anderen Regionen die gültige Eingabeweise 1.000,00 ist.
Firefox verwendet folgende Heuristiken, um die Sprache zu bestimmen, in der die Benutzereingabe validiert werden soll (zumindest für type="number"
):
- Versuchen Sie die Sprache, die durch ein
lang
/xml:lang
-Attribut auf dem Element oder einem seiner Eltern angegeben wird. - Versuchen Sie die Sprache, die durch einen
Content-Language
-HTTP-Header angegeben wird. Oder, - Falls keine angegeben ist, verwenden Sie die Sprache des Browsers.
Barrierefreiheit
Labels
Beim Einfügen von Inputs ist es erforderlich, Labels hinzuzufügen. Dies ist notwendig, damit Benutzer mit Hilfstechnologien erkennen können, wofür das Input ist. Außerdem wird durch Klicken oder Tippen auf ein Label der Fokus auf das zugehörige Formularelement gesetzt. Dies verbessert die Barrierefreiheit und Benutzerfreundlichkeit für sehende Benutzer, erhöht die Fläche, auf die ein Benutzer klicken oder tippen kann, um das Formularelement zu aktivieren. Dies ist besonders nützlich (und sogar erforderlich) für Radio-Buttons und Auswahlkästchen, die sehr klein sind. Weitere Informationen zu Labels im Allgemeinen finden Sie unter Labels.
Das folgende Beispiel zeigt, wie das <label>
-Element mit einem <input>
-Element im oben genannten Stil assoziiert wird. Sie müssen dem <input>
ein id
-Attribut geben. Das <label>
benötigt dann ein for
-Attribut, dessen Wert dem id
des Inputs entspricht.
<label for="peas">Do you like peas?</label>
<input type="checkbox" name="peas" id="peas" />
Größe
Interaktive Elemente wie Formulareingaben sollten eine genügend große Fläche bieten, damit sie leicht zu aktivieren sind. Dies hilft einer Vielzahl von Menschen, einschließlich Personen mit motorischen Beeinträchtigungen und Personen, die unpräzise Eingabemethoden wie einen Stift oder Finger verwenden. Eine minimale interaktive Größe von 44×44 CSS-Pixeln wird empfohlen.
Technische Zusammenfassung
Inhaltskategorien |
Fließinhalt, aufgezählt, einreichbar, zurücksetzbar, formularassoziiertes Element, Phrasing-Inhalt. Wenn der type nicht hidden ist, dann labelbares Element, fühlbarer Inhalt.
|
---|---|
Erlaubter Inhalt | Keiner; es ist ein leeres Element. |
Tag-Auslassung | Muss ein Start-Tag haben und darf keinen End-Tag haben. |
Erlaubte Eltern | Jedes Element, das Phrasing-Inhalt akzeptiert. |
Implizite ARIA-Rolle |
|
Erlaubte ARIA-Rollen |
|
DOM-Interface | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
Spezifikationen
Specification |
---|
HTML # the-input-element |
Browser-Kompatibilität
Siehe auch
- Formular Zwänge Validierung
- Ihr erstes HTML-Formular
- Wie man ein HTML-Formular strukturiert
- Die nativen Formular-Widgets
- Senden von Formulardaten
- Formular Datenvalidierung
- Wie man benutzerdefinierte Formular-Widgets erstellt
- HTML-Formulare in Legacy-Browsern
- Styling HTML-Formulare
- Erweiterte Stylingoptionen für HTML-Formulare
- Erstellen von vertikalen Formularelementen