<input>: Das HTML Input-Element
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
* Some parts of this feature may have varying levels of support.
Das <input>-HTML Element wird verwendet, um interaktive Steuerelemente für webbasierte Formulare zu erstellen, um Daten vom Benutzer zu erfassen; eine Vielzahl von Arten von Eingabedaten und Steuerungswidgets sind verfügbar, abhängig von dem Gerät und dem Benutzeragent. Das <input>-Element ist eines der leistungsfähigsten und komplexesten in ganz HTML aufgrund der schieren Anzahl von Kombinationen aus 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 abhängig vom Wert seines type-Attributs, daher werden die verschiedenen Typen in ihren eigenen separaten Referenzseiten behandelt. Wenn dieses Attribut nicht angegeben ist, wird standardmäßig der Typ text übernommen.
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 erlaubt, einzelne Werte auszuwählen/abzuwählen. |
|
| color | Ein Steuergerät zum Angeben einer Farbe; öffnet einen Farbwähler, wenn es in unterstützenden Browsern aktiv ist. |
|
| date | Eine Steuerung zur Eingabe eines Datums (Jahr, Monat und Tag, ohne Zeit). Öffnet einen Datepicker oder numerische Räder für Jahr, Monat, Tag, wenn es in unterstützenden Browsern aktiv ist. |
|
| datetime-local | Eine Steuerung zur Eingabe eines Datums und einer Uhrzeit, ohne Zeitzone. Öffnet einen Datepicker oder numerische Räder für Datum- und Zeitkomponenten, wenn es in unterstützenden Browsern aktiv ist. |
|
Ein Feld zur Bearbeitung einer E-Mail-Adresse. Sieht aus wie ein
text-Eingabefeld, hat jedoch Validierungsparameter und relevante
Tastatur in unterstützenden Browsern und Geräten mit dynamischen Tastaturen.
|
|
|
| file |
Eine Steuerung, die es dem Benutzer ermöglicht, eine Datei auszuwählen.
Verwenden Sie das accept-Attribut, um die Arten von Dateien zu definieren, die die Steuerung auswählen kann.
|
|
| hidden | Eine Steuerung, die nicht angezeigt wird, deren Wert jedoch an den Server übermittelt wird. Es gibt ein Beispiel in der nächsten Spalte, aber es ist versteckt! | |
| image |
Eine grafische submit-Schaltfläche. Zeigt ein Bild an, das durch das src-Attribut definiert ist.
Das alt-Attribut wird angezeigt, wenn das Bild src fehlt.
|
|
| month | Eine Steuerung zur Eingabe eines Monats und Jahres, ohne Zeitzone. |
|
| number | Eine Steuerung zur Eingabe einer Zahl. Zeigt einen Spinner und fügt eine Standardvalidierung hinzu. Zeigt eine numerische Tastatur auf einigen Geräten mit dynamischen Tastaturen an. |
|
| password | Ein einzeiliges Texteingabefeld, dessen Wert verborgen ist. Warnt den Benutzer, wenn die Website nicht sicher ist. |
|
| radio |
Eine Optionsschaltfläche, die es ermöglicht, einen einzelnen Wert aus mehreren Auswahlmöglichkeiten mit demselben name-Wert auszuwählen.
|
|
| range |
Eine Steuerung zur Eingabe einer Zahl, deren genauer Wert nicht wichtig ist.
Wird als Bereichs-Widget angezeigt, das standardmäßig auf den Mittelwert eingestellt ist.
Wird in Verbindung mit min und max verwendet, um den Bereich akzeptabler Werte zu definieren.
|
|
| reset | Eine Schaltfläche, die den Inhalt des Formulars auf Standardwerte zurücksetzt. Nicht empfohlen. |
|
| search | Ein einzeiliges Texteingabefeld zur Eingabe von Suchzeichenfolgen. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. Bei unterstützenden Browsern kann ein Löschsymbol enthalten sein, das verwendet werden kann, um das Feld zu leeren. Zeigt auf einigen Geräten mit dynamischen Tastaturen ein Suchsymbol anstelle der Eingabetaste. |
|
| submit | Eine Schaltfläche, die das Formular absendet. |
|
| tel | Eine Steuerung zur Eingabe einer Telefonnummer. Zeigt eine Telefonnummerntastatur auf einigen Geräten mit dynamischen Tastaturen an. |
|
| text | Der Standardwert. Ein einzeiliges Texteingabefeld. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. |
|
| time | Eine Steuerung zur Eingabe eines Zeitwerts ohne Zeitzone. |
|
| url |
Ein Feld zur Eingabe einer URL. Sieht aus wie ein text-Eingabefeld, hat jedoch Validierungsparameter und relevante Tastatur in unterstützenden Browsern und Geräten mit dynamischen Tastaturen.
|
|
| week | Eine Steuerung zur Eingabe eines Datums, das aus einer Kalenderjahrnummer und einer Wochennummer besteht, ohne Zeitzone. |
|
| Veraltete Werte | ||
datetime
Veraltet
|
Eine Steuerung zur Eingabe eines Datums und einer Zeit (Stunde, Minute, Sekunde und Bruchteil einer Sekunde) basierend auf der UTC-Zeitzone. |
|
Attribute
Das <input>-Element ist so leistungsfähig aufgrund seiner Attribute; das type-Attribut, das oben mit Beispielen beschrieben wurde, ist das wichtigste. Da jedes <input>-Element, unabhängig vom Typ, auf der HTMLInputElement-Schnittstelle basiert, teilen sie technisch das exakt gleiche Set von Attributen. In Wirklichkeit haben jedoch die meisten Attribute einen Effekt nur auf einen spezifischen Teilmengen von Eingabetypen. Darüber hinaus variiert die Auswirkung einiger Attribute je nach Eingabetyp, was unterschiedliche Eingabetypen auf verschiedene Weisen beeinflusst.
Dieser Abschnitt enthält eine Tabelle, die alle Attribute mit einer kurzen Beschreibung auflistet. Diese Tabelle wird von einer Liste gefolgt, die jedes Attribut detaillierter beschreibt, zusammen mit den Eingabetypen, mit denen sie assoziiert sind. Attribute, die bei den meisten oder allen Eingabetypen üblich sind, werden unten ausführlicher definiert. Attribute, die einzigartig für bestimmte Eingabetypen sind—oder Attribute, die bei allen Eingabetypen üblich sind, aber spezielles Verhalten bei einem bestimmten Eingabetyp haben—sind stattdessen auf den Seiten dieser Typen dokumentiert.
Attribute für das <input>-Element umfassen die globalen HTML-Attribute und zusätzlich:
| Attribut | Typ(en) | Beschreibung |
|---|---|---|
accept |
file |
Hinweis auf erwarteten Dateityp in Dateiupload-Steuerungen |
alpha |
color |
Opazität der Farbe |
alt |
image |
alt-Attribut für den Bildtyp. Erforderlich für Barrierefreiheit |
autocapitalize |
alle außer url, email, und password |
Steuert die automatische Großschreibung im eingegebenen Text. |
autocomplete |
alle außer checkbox, radio, und Buttons |
Hinweis für die Autovervollständigungsfunktion von Formularen |
capture |
file |
Eingabemethode zur Medienerfassung in Dateiupload-Steuerungen |
checked |
checkbox, radio |
Ob der Befehl oder die Steuerung aktiviert ist |
colorspace |
color |
Der Farbraum, der zum Auswählen des Farbwerts verwendet werden soll |
dirname |
hidden, text, search, url, tel, email |
Name des Formularfelds zum Senden der Richtung des Elements bei Formularübertragungen |
disabled |
alle | Ob die Steuerung des Formularfelds deaktiviert ist |
form |
alle | Verknüpft die Steuerung mit einem Formularelement |
formaction |
image, submit |
URL zur Verwendung bei der Formularübertragung |
formenctype |
image, submit |
Kodierungstyp des Formulardatensatzes, der bei der Formularübertragung verwendet werden soll |
formmethod |
image, submit |
HTTP-Methode, die bei der Formularübertragung verwendet werden soll |
formnovalidate |
image, submit |
Umgeht die Validierung der Formularsteuerung bei der Formularübertragung |
formtarget |
image, submit |
Browsing-Kontext für die Formularübertragung |
height |
image |
Dasselbe wie das height-Attribut für <img>; vertikale Dimension |
list |
alle außer hidden, password, checkbox, radio, und Buttons |
Wert des id-Attributs der <datalist> der Autovervollständigung |
max |
date, month, week, time, datetime-local, number, range |
Maximaler Wert |
maxlength |
text, search, url, tel, email, password |
Maximale Länge (Anzahl der Zeichen) von 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) von value |
multiple |
email, file |
Boolean. Ob mehrere Werte erlaubt sind |
name |
alle | Name der Formularsteuerung. Wird mit dem Formular als Teil eines Namens/Werte-Paars ü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 Steuerelement angezeigt wird, wenn kein Wert gesetzt ist |
popovertarget |
button |
Definiert ein <input type="button"> als Steuerung für ein Popover-Element |
popovertargetaction |
button |
Gibt an, welche Aktion ein Popover-Steuerelement ausführen soll |
readonly |
alle außer hidden, range, color, checkbox, radio, und Buttons |
Boolean. Der Wert ist nicht editierbar |
required |
alle außer hidden, range, color, und Buttons |
Boolean. Ein Wert ist erforderlich oder muss überprüft werden, damit das Formular übermittelt werden kann |
size |
text, search, url, tel, email, password |
Größe der Steuerung |
src |
image |
Dasselbe wie das src-Attribut für <img>; Adresse der Bildressource |
step |
date, month, week, time, datetime-local, number, range |
Inkrementale Werte, die gültig sind |
type |
alle | Typ der Formularsteuerung |
value |
alle außer image |
Der Wert der Steuerung. Wenn im HTML angegeben, entspricht dem Anfangswert |
width |
image |
Dasselbe wie das width-Attribut für <img> |
Einige zusätzliche nicht standardisierte Attribute sind nach der Beschreibung der Standardattribute aufgeführt.
Einzelne Attribute
accept-
Nur für den
fileEingabetyp gültig, definiert dasaccept-Attribut, welche Dateitypen in einer Steuerung zur Dateiauswahl ausgewählt werden können. Siehe den file Eingabetyp. alphaExperimentell-
Nur für den
colorEingabetyp gültig, bietet dasalpha-Attribut dem Benutzer die Möglichkeit, die Opazität der ausgewählten Farbe einzustellen. alt-
Gültig nur für den
imageButton, bietet dasalt-Attribut alternativen Text für das Bild, das den Wert des Attributs anzeigt, wenn die Bildsrcfehlt oder anderweitig 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 für
autocapitalize. autocomplete-
(Kein Boolean-Attribut!) Das
autocomplete-Attribut nimmt als Wert eine durch Leerzeichen getrennte Zeichenfolge, die beschreibt, welche, wenn überhaupt, Autovervollständigungsfunktionen das Eingabefeld bereitstellen soll. Eine typische Implementierung von Autovervollständigung erinnert sich an zuvor eingegebene Werte in demselben Eingabefeld, aber es können auch komplexere Formen der Autovervollständigung existieren. Beispielsweise könnte ein Browser mit der Kontaktliste eines Geräts integrieren, umemail-Adressen in einem E-Mail-Eingabefeld zu vervollständigen. Sieheautocompletefür erlaubte 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 keinen Effekt auf Eingabetypen, die keine numerischen oder Textdaten zurückgeben und ist somit gültig für alle Eingabetypen außercheckbox,radio,fileoder einer der Schaltflächentypen.Siehe das
autocomplete-Attribut für zusätzliche Informationen, einschließlich Passwortsicherheit und wieautocompletefürhiddenleicht unterschiedlich ist im Vergleich zu anderen Eingabetypen. autofocus-
Ein Boolean-Attribut, das, wenn vorhanden, angibt, dass das Eingabefeld automatisch den Fokus erhalten sollte, wenn die Seite geladen wurde (oder wenn das
<dialog>mit dem Element 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 bei mehr als einem Element gesetzt ist, erhält das erste Element mit dem Attribut den Fokus.Das
autofocus-Attribut kann nicht auf Eingaben des Typshiddenverwendet werden, da versteckte Eingaben nicht fokussiert werden können.Warnung: Automatisches Fokussieren einer Formularsteuerung kann Menschen mit Sehbehinderungen, die Bildschirmüberlese-Technologie verwenden, und Menschen mit kognitiven Beeinträchtigungen verwirren. Wenn
autofocuszugewiesen ist, "teleportieren" Bildschirmlesegeräte Benutzer ohne vorherige Warnung zur Formularsteuerung.Verwenden Sie beim Anwenden des
autofocus-Attributs eine sorgfältige Überlegung zur Barrierefreiheit. Automatisches Fokussieren auf eine Steuerung 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 Etikett der Formularsteuerung, die den Fokus erhält, ankündigt, kündigt der Bildschirmleser nichts vor dem Etikett an, und der sehende Benutzer auf einem kleinen Gerät wird gleichermaßen den Kontext des vorherigen Inhalts vermissen. capture-
Eingeführt in der HTML Media Capture-Spezifikation und nur gültig für den
fileEingabetyp, definiert dascapture-Attribut, welche Medien—Mikrofon, Video oder Kamera—zur Erfassung einer neuen Datei für den Upload mit der Datei-Upload-Steuerung in unterstützenden Szenarien verwendet werden sollen. Siehe den file Eingabetyp. checked-
Gültig für sowohl
radioals auchcheckboxTypen, istcheckedein Boolean-Attribut. Wenn es beimradioTyp vorhanden ist, zeigt es an, dass die Optionsschaltfläche die derzeit ausgewählte in der Gruppe von gleichnamigen Optionsschaltflächen ist. Wenn es beimcheckboxTyp vorhanden ist, zeigt es an, dass das Kontrollkästchen standardmäßig aktiviert ist (wenn die Seite geladen wird). Es zeigt nicht an, ob dieses Kontrollkästchen derzeit aktiviert ist: wenn sich der Zustand des Kontrollkästchens ändert, spiegelt dieses Inhaltsattribut die Änderung nicht wider. (Nur dasHTMLInputElement'scheckedIDL Attribut wird aktualisiert.)Hinweis: Im Gegensatz zu anderen Eingabesteuerungen wird bei Kontrollkästchen und Optionsschaltflächen der Wert nur dann in die übermittelten Daten aufgenommen, wenn sie derzeit
checkedsind. Wenn sie es sind, werden der Name und die Wert(e) der aktivierten Steuerungen übermittelt.Zum Beispiel, wenn ein Kontrollkästchen, dessen
namefruitist, einenvaluevoncherryhat und das Kontrollkästchen aktiviert ist, werden die Formulardatenfruit=cherrybeinhalten. Ist das Kontrollkästchen nicht aktiv, wird es in den Formulardaten überhaupt nicht aufgeführt. Der Standardvaluefür Kontrollkästchen und Optionsschaltflächen iston. colorspaceExperimentell-
Nur für den
colorEingabetyp gültig, spezifiziert dascolorspace-Attribut den Farbraum, der von dertype="color"Eingabe verwendet wird. Mögliche aufgezählte Werte sind:"limited-srgb": Die Farbe befindet sich im sRGB Farbraum. Dies schließtrgb(),hsl(),hwb(), und<hex-color>Werte ein. Der Farbwert ist auf 8 Bits pror,g, undbKomponente begrenzt. Dies ist die Standardeinstellung."display-p3": Der Display P3 Farbraum, z.B.,color(display-p3 1.84 -0.19 0.72 / 0.6)
dirname-
Gültig für
hidden,text,search,url,tel, undemailEingabetypen, ermöglicht dasdirname-Attribut die Übermittlung der Richtungsangabe des Elements. Wenn enthalten, wird die Steuerung des Formulars mit zwei Namen/Werte-Paaren übermittelt: das erste ist dernameundvalue, und das zweite ist der Wert desdirnameAttributs als Name mit einem Wert vonltroderrtl, 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 stehende Formular übermittelt wird, bewirkt die Eingabe, dass sowohl das
name/valuePaar vonfruit=cherryals auch dasdirname/ Richtungs-Paar vonfruit-dir=ltrgesendet werden. Weitere Informationen finden Sie imdirnameAttribut. disabled-
Ein Boolean-Attribut, das, wenn vorhanden, anzeigt, dass der Benutzer nichts mit der Eingabe machen soll. Deaktivierte Eingaben werden typischerweise mit einer gedimmten Farbe oder durch eine andere Art der Andeutung angezeigt, dass das Feld nicht zur Verwendung verfügbar ist.
Speziell erhalten deaktivierte Eingaben nicht das
click-Ereignis, und deaktivierte Eingaben werden nicht mit dem Formular übermittelt.Hinweis: Obwohl nicht durch die Spezifikation erforderlich, speichert Firefox standardmäßig den dynamischen deaktivierten Zustand über Seitenladungen hinweg von einem
<input>. Verwenden Sie dasautocomplete-Attribut, um diese Funktion zu steuern. form-
Ein String, der das
<form>Element spezifiziert, mit dem die Eingabe verknüpft ist (das heißt, sein Formularinhaber). Der Wert dieses Strings, wenn vorhanden, muss mit demideines<form>Elements in demselben Dokument übereinstimmen. Wenn dieses Attribut nicht angegeben ist, wird das<input>-Element mit dem nächstgelegenen im Dokument enthaltenen Formular verknüpft, wenn es vorhanden ist.Das
form-Attribut ermöglicht es, eine Eingabe an einer beliebigen Stelle im Dokument zu platzieren, aber diese mit einem Formular an anderer Stelle im Dokument zu verknüpfen.Hinweis: Eine Eingabe kann nur mit einem Formular verknüpft werden.
formaction-
Nur für die
imageundsubmitEingabetypen gültig. Siehe den submit Eingabetyp für weitere Informationen. formenctype-
Nur für die
imageundsubmitEingabetypen gültig. Siehe den submit Eingabetyp für weitere Informationen. formmethod-
Nur für die
imageundsubmitEingabetypen gültig. Siehe den submit Eingabetyp für weitere Informationen. formnovalidate-
Nur für die
imageundsubmitEingabetypen gültig. Siehe den submit Eingabetyp für weitere Informationen. formtarget-
Nur für die
imageundsubmitEingabetypen gültig. Siehe den submit Eingabetyp für weitere Informationen. height-
Gültig nur für den
imageEingabeknopf, ist dieheightdie Höhe der Bilddatei, die angezeigt wird, um die grafische Sende-Schaltfläche darzustellen. Siehe den image Eingabetyp. id-
Globales Attribut, das für alle Elemente gilt, einschließlich aller Eingabetypen, es definiert einen eindeutigen Bezeichner (ID), der im ganzen Dokument einzigartig sein muss. Sein Zweck ist es, das Element zu identifizieren, wenn es verknüpft wird. Der Wert wird als Wert des
forAttributs des<label>verwendet, um das Label mit der Steuerung des Formulars zu verknüpfen. Siehe<label>. inputmode-
Globaler Wert, der für alle Elemente gültig ist, er bietet einen Hinweis für Browser hinsichtlich der Art der virtuellen Tastaturkonfiguration, die beim Bearbeiten dieses Elements oder seines Inhalts verwendet werden soll. Werte sind
none,text,tel,url,email,numeric,decimal, undsearch. list-
Der Wert, der dem
listAttribut gegeben wird, sollte dieideiner<datalist>in demselben Dokument sein. Das<datalist>bietet eine Liste vordefinierter Werte an, die dem Benutzer für diese Eingabe vorgeschlagen wird. Alle Werte in der Liste, die nicht mit demtypekompatibel sind, werden nicht in die vorgeschlagenen Optionen aufgenommen. Die bereitgestellten Werte sind Vorschläge, keine Anforderungen: Verwender können aus dieser vordefinierten Liste auswählen oder einen anderen Wert eingeben.Es ist gültig auf
text,search,url,tel,email,date,month,week,time,datetime-local,number,range, undcolor.Laut den Spezifikationen wird das
listAttribut nicht vonhidden,password,checkbox,radio,file, oder einem der Schaltflächentypen unterstützt.Abhängig vom Browser kann der Benutzer eine benutzerdefinierte Farbpalette vorgeschlagen sehen, Tic-Marken entlang eines Bereichs, oder sogar eine Eingabe, die sich wie ein
<select>öffnet, dabei jedoch nicht auf gelistete Werte beschränkt ist. Schauen Sie sich die Browser-Kompatibilitätstabelle für die anderen Eingabetypen an.Siehe das
<datalist>Element. max-
Gültig für
date,month,week,time,datetime-local,number, undrange, definiert es den größten Wert im Bereich der erlaubten Werte. Wenn der eingegebenevaluein das Element diesen überschreitet, schlägt das Element bei der Einschränkungsvalidierung fehl. Wenn der Wert desmaxAttributs keine Zahl ist, dann hat das Element keinen Maximalwert.Es gibt einen Sonderfall: Wenn der Datentyp periodisch ist (wie für Daten oder Zeiten), kann der Wert von
maxniedriger sein als der Wert vonmin, was darauf hinweist, dass der Bereich umklappt; beispielsweise ermöglicht dies, einen Zeitbereich von 22 Uhr bis 4 Uhr anzugeben. maxlength-
Gültig für
text,search,url,tel,email, undpassword, definiert es die maximale Zeichenfolge (gemessen in UTF-16 Codeeinheiten), die der Benutzer in das Feld eingeben kann. Dies muss ein ganzzahliger Wert von 0 oder höher sein. Wenn keinmaxlengthangegeben 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 vonminlengthsein.Die Eingabe schlägt bei der Einschränkungsvalidierung fehl, wenn die Länge des eingegebenen Texts in das Feld länger als
maxlengthUTF-16 Codeeinheiten ist. Standardmäßig verhindern Browser, dass Benutzer mehr Zeichen eingeben, als durch dasmaxlengthAttribut erlaubt ist. Die Einschränkungsvalidierung wird nur angewandt, wenn der Wert vom Benutzer geändert wird. Siehe Client-seitige Validierung für mehr Informationen. min-
Gültig für
date,month,week,time,datetime-local,number, undrange, definiert es den minimalsten Wert im Bereich der erlaubten Werte. Wenn der eingegebenevaluein das Element unter diesem liegt, schlägt das Element bei der Einschränkungsvalidierung fehl. Wenn der Wert desminAttributs keine Zahl ist, dann hat das Element keinen Minimalwert.Dieser Wert muss kleiner oder gleich dem Wert des
maxAttributs sein. Wenn dasminAttribut vorhanden ist, aber nicht angegeben oder ungültig ist, wird keinminWert angewandt. Wenn dasminAttribut gültig ist und ein nicht-leerer Wert unter dem durch dasminAttribut erlaubten Minimum liegt, wird die Einschränkungsvalidierung die Formularübermittlung verhindern. Siehe Client-seitige Validierung für mehr Informationen.Es gibt einen Sonderfall: Wenn der Datentyp periodisch ist (wie für Daten oder Zeiten), kann der Wert von
maxniedriger sein als der Wert vonmin, was darauf hinweist, dass der Bereich umklappt; beispielsweise ermöglicht dies, einen Zeitbereich von 22 Uhr bis 4 Uhr anzugeben. minlength-
Gültig für
text,search,url,tel,email, undpassword, definiert es die minimale Zeichenfolge (gemessen in UTF-16 Codeeinheiten), die der Benutzer in das Eingabefeld eingeben kann. Dies muss ein nicht-negativer Ganzzahlenwert sein, der kleiner oder gleich dem Wert ist, der durchmaxlengthbestimmt wird. Wenn keineminlengthangegeben ist, oder ein ungültiger Wert angegeben ist, hat die Eingabe keine Mindestlänge.Die Eingabe schlägt bei der Einschränkungsvalidierung fehl, wenn die Länge des eingegebenen Textes in das Feld kürzer ist als
minlengthUTF-16 Codeeinheiten lang, was die Formularübermittlung verhindert. Die Einschränkungsvalidierung wird nur angewandt, wenn der Wert vom Benutzer geändert wird. Siehe Client-seitige Validierung für mehr Informationen. multiple-
Das Boolean
multipleAttribut, wenn gesetzt, bedeutet, dass der Benutzer durch Kommas getrennte E-Mail-Adressen im Email-Widget eingeben kann oder mehr als eine Datei mit derfileEingabe auswählen kann. Siehe den email und file Eingabetyp. name-
Ein String, der einen Namen für die Eingabesteuerung angibt. Dieser Name wird zusammen mit dem Wert der Steuerung bei der Übermittlung der Formulardaten gesendet.
Betrachten Sie den
nameals ein erforderliches Attribut (obwohl es das nicht ist). Wenn eine Eingabe keinennameangibt oder dernameleer ist, wird der Wert der Eingabe bei der Übermittlung des Formulars nicht gesendet! (Deaktivierte Steuerungen, nicht ausgewählte Optionsschaltflächen, nicht aktivierte Kontrollkästchen und Zurücksetzen-Schaltflächen werden ebenfalls nicht gesendet.)Es gibt zwei Sonderfälle:
_charset_: Wenn als Name eines<input>Elements vom Typ hidden verwendet, wird dervalueder Eingabe automatisch durch den Benutzeragent auf die verwendete Zeichencodierung zur Übermittlung des Formulars gesetzt.isindex: Aus historischen Gründen ist der Nameisindexnicht erlaubt.
Das
nameAttribut schafft ein einzigartiges Verhalten für Optionsschaltflächen.Nur eine Optionsschaltfläche in einer Gruppe von gleichnamigen Optionsschaltflächen kann gleichzeitig ausgewählt sein. Wenn eine dieser Schaltflächen ausgewählt wird, wird jede derzeit ausgewählte Schaltfläche in derselben Gruppe automatisch abgewählt. Der Wert dieser einen ausgewählten Schaltfläche wird zusammen mit dem Namen gesendet, wenn das Formular übermittelt wird.
Bei der Tab-Navigation in eine Serie von gleichnamigen Gruppen von Optionsschaltflächen, wenn eine ausgewählt ist, erhält diese dann den Fokus. Wenn sie nicht in der Quellreihenfolge gruppiert sind und eine der Gruppe ausgewählt ist, beginnt die Tab-Navigation, wenn die erste in der Gruppe erreicht wird, wobei alle übersprungen werden, die nicht ausgewählt sind. Mit anderen Worten, wenn eine ausgewählt ist, überspringt die Tab-Navigation die nicht ausgewählten der Gruppe. Wenn keine ausgewählt ist, erhält die Radioschaltflächengruppe den Fokus, wenn die erste Schaltfläche in der gleichen Gruppe erreicht wird.
Sobald eine der Optionsschaltflächen in einer Gruppe den Fokus hat, kann man mit den Pfeiltasten durch alle Optionsschaltflächen mit demselben Namen navigieren, selbst wenn die Radioschaltflächen in der Quellreihenfolge nicht gruppiert sind.
Wenn einem Eingabeelement ein
namezugeordnet ist, wird dieser Name zu einer Eigenschaft der BesitzformularelementsHTMLFormElement.elements-Eigenschaft. Wenn Sie eine Eingabe haben, derennameaufguestgesetzt ist und eine andere, derennamehat-sizeist, kann der folgende 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
guestNamedasHTMLInputElementfür dasguestFeld sein, undhatSizedas Objekt für dashat-sizeFeld.Warnung: Vermeiden Sie, Formularelementen einen
namezu vergeben, der einer integrierten Eigenschaft von Formularen entspricht, da Sie damit die vordefinierte Eigenschaft oder Methode mit diesem Verweis auf das entsprechende Eingabefeld überschreiben würden. pattern-
Gültig für
text,search,url,tel,email, undpassword, daspattern-Attribut wird verwendet, um einen regulären Ausdruck zu kompilieren, dem der Eingabevalueentsprechen muss, um bei der Einschränkungsvalidierung gültig zu sein. Es muss ein gültiger JavaScript-Regulärausdruck sein, wie er durch denRegExpTyp verwendet wird und wie in unserem Leitfaden zu Regulären Ausdrücken dokumentiert. Keine Schrägstriche sollten um den Mustertext spezifiziert werden. Bei der Kompilierung 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 Folge von Unicode-Codepunkten behandelt wird, anstelle von ASCII.
Wenn das
pattern-Attribut vorhanden ist, aber nicht angegeben 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 das Muster nicht erfüllt, wird die Einschränkungsvalidierung die Formularübermittlung verhindern. Wennmultiplevorhanden ist, wird der kompilierte reguläre Ausdruck mit jedem durch Kommas getrennten Wert abgeglichen.Hinweis: Wenn das
pattern-Attribut verwendet wird, informieren Sie den Benutzer über das erwartete Format, indem Sie erläuternden Text in der Nähe bereitstellen. Sie können auch eintitleAttribut einschließen, um zu erklären, was die Anforderungen sind, um dem Muster zu entsprechen; die meisten Browser werden diesen Titel als Tooltip anzeigen. Die sichtbare Erklärung ist für die Barrierefreiheit erforderlich. Der Tooltip ist eine Verbesserung.Siehe Client-seitige Validierung für mehr 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 den erwarteten Typ von Daten gibt, anstatt einer vollständigen Erklärung oder Aufforderung. Der Text darf keine Wagenrückläufe oder Zeilenumbrüche enthalten. So zum Beispiel, wenn ein Feld den Vornamen eines Benutzers erfassen soll und sein Etikett "Vorname" lautet, könnte ein geeigneter Platzhalter "z.B., Mustafa" lauten.Hinweis: Das
placeholder-Attribut ist nicht so semantisch nützlich wie andere Methoden, um das Formular zu erklären, und kann unerwartete technische Probleme mit Ihrem Inhalt verursachen. Siehe Labels für mehr Informationen. popovertarget-
Wandelt ein
<input type="button">Element in eine Popover-Steuertaste um; nimmt die ID des Popover-Elements, das gesteuert werden soll, als Wert. Siehe die Popover API Startseite für mehr Details. Die Erstellung einer Beziehung zwischen einem Popover und seiner aufrufenden Schaltfläche mithilfe despopovertarget-Attributs hat zwei weitere nützliche Effekte:- Der Browser erstellt eine implizite
aria-detailsundaria-expandedBeziehung zwischen Popover und Aufrufer und platziert das Popover in einer logischen Position in der Tastaturfokussierungsnavigation, wenn es angezeigt wird. Dies macht das Popover für Tastatur- und Hilfstechnologie (AT) Benutzer zugänglicher (siehe auch Popover-Zugänglichkeitseigenschaften). - Der Browser erstellt eine implizite Ankerreferenz zwischen den beiden, die es sehr bequem macht, Popovers relativ zu ihren Steuerelementen mit CSS-Ankerpositionierung zu positionieren. Siehe Popover-Ankerpositionierung für mehr Details.
- Der Browser erstellt eine implizite
popovertargetaction-
Gibt die auszuführende Aktion an einem Popover-Element an, das von einem Steuerungs-
<input type="button">gesteuert wird. Mögliche Werte sind:"hide"-
Die Schaltfläche wird ein angezeigtes Popover ausblenden. Wenn Sie versuchen, ein bereits ausgeblendetes Popover auszublenden, wird keine Aktion durchgeführt.
"show"-
Die Schaltfläche wird ein ausgeblendetes Popover anzeigen. Wenn Sie versuchen, ein bereits angezeigt werdendes Popover anzuzeigen, wird keine Aktion durchgeführt.
"toggle"-
Die Schaltfläche wird ein Popover zwischen sichtbar und ausgeblendet umschalten. Wenn das Popover ausgeblendet ist, wird es angezeigt; wenn das Popover angezeigt wird, wird es ausgeblendet. Wenn
popovertargetactionweggelassen wird, ist"toggle"die Standardaktion, die von der Steuerungstaste durchgeführt wird.
readonly-
Ein Boolean-Attribut, das, wenn vorhanden, angibt, dass der Benutzer den Wert der Eingabe nicht bearbeiten können soll. Das
readonly-Attribut wird von dentext,search,url,tel,email,date,month,week,time,datetime-local,number, undpasswordEingabetypen unterstützt.Siehe das HTML-Attribut:
readonlyfür mehr Informationen. required-
requiredist ein Boolean-Attribut, das, wenn vorhanden, anzeigt, dass der Benutzer einen Wert für die Eingabe angeben muss, bevor das das Formular besitzen könnende Formular abgesendet werden kann. Dasrequired-Attribut wird von dentext,search,url,tel,email,date,month,week,time,datetime-local,number,password,checkbox,radio, undfileEingaben unterstützt.Siehe Client-seitige Validierung und das HTML Attribut:
requiredfür mehr Informationen. size-
Gültig für
email,password,tel,url, undtext, dassize-Attribut spezifiziert, wie viel von der Eingabe angezeigt wird. Erzeugt im Grunde dasselbe Ergebnis wie das Setzen der CSS-Eigenschaftwidthmit ein paar Besonderheiten. Die tatsächliche Einheit des Wertes hängt vom Eingabetyp ab. Fürpasswordundtextist es eine Anzahl von Zeichen (oderemEinheiten) mit einem Standardwert von20, und für andere sind es Pixel (oderpxEinheiten). CSSwidthhat Vorrang gegenüber demsizeAttribut. src-
Gültig nur für den
imageEingabeknopf, ist dassrcein String, der die URL der Bilddatei angibt, die angezeigt wird, um die grafische Sende-Schaltfläche darzustellen. Siehe den image Eingabetyp. step-
Gültig für
date,month,week,time,datetime-local,number, undrange, dasstepAttribut ist eine Zahl, die die Granularität spezifiziert, der der Wert einhalten muss. Nur Werte, die eine ganze Anzahl von Schritten vom Basiswert entfernt sind, sind gültig. Der Basiswert istmin, wenn angegeben,valueandernfalls, oder0, wenn keiner angegeben ist (außer fürweek, das einen Standardbasiswert von -259,200,000 hat, was den Anfang der Woche1970-W01darstellt).Wenn nicht explizit enthalten:
stepstandardmäßig auf 1 fürnumberundrange.- Jeder Datums-/Uhrzeittyp hat einen Standardwert für
step, der für den Type geeignet ist; siehe die einzelnen Eingabe-Seiten:date,datetime-local,month,time, undweek.
Der Wert muss eine positive Zahl sein—Ganzzahl oder Fließkommazahl—oder der spezielle Wert
any, der bedeutet, dass kein Step angenommen wird, und jeder Wert erlaubt ist (unter der Vorbehalt anderer Einschränkungen, wieminundmax).Zum Beispiel, wenn Sie
<input type="number" min="10" step="2">haben, dann ist jede gerade Zahl,10oder größer, gültig. Wenn weggelassen,<input type="number">, ist jede Ganzzahl gültig, aber Fließkommazahlen (wie4.2) sind es nicht, weilstepper Voreinstellung1ist. Um4.2gültig zu machen, müsstestepaufany, 0.1, 0.2 gesetzt worden sein oder derminWert müsste eine Zahl sein, die auf.2endet, wie<input type="number" min="-5.2">.Hinweis: Wenn die vom Benutzer eingegebene Daten nicht der Step-Konfiguration entsprechen, wird der Wert als ungültig in der Einschränkungsvalidierung betrachtet und wird die
:invalid-Pseudoklasse entsprechen.Siehe Client-seitige Validierung für mehr Informationen.
tabindex-
Globales Attribut gültig für alle Elemente, einschließlich aller Eingabetypen, eine ganzzahlige Attributierung anzeigend, ob das Element den Eingabefokus nehmen kann (ist fokussierbar), ob es an der sequentiellen Tastaturnavigation teilnehmen soll. Da alle Eingabetypen außer
hiddenEingaben fokussierbar sind, sollte dieses Attribut nicht auf Formularsteuerungen verwendet werden, da dies das Management der Fokusreihenfolge für alle Elemente im Dokument erfordern würde, mit dem Risiko, die Benutzerfreundlichkeit und Zugänglichkeit zu beeinträchtigen, wenn es falsch gemacht wird. title-
Globales Attribut, das für alle Elemente gültig ist, einschließlich aller Eingabetypen, enthält einen Text, der beratende Informationen in Bezug auf das Element enthält, zu dem es gehört. Solche Informationen können typischerweise, aber nicht unbedingt, dem Benutzer als Tooltip präsentiert werden. Der Titel sollte NICHT als primäre Erklärung des Zwecks der Formularsteuerung verwendet werden. Verwenden Sie stattdessen das
<label>-Element mit einemfor-Attribut, das auf dasid-Attribut der Formularsteuerung gesetzt ist. Siehe Labels unten. type-
Ein String, der den Typ der Steuerelemente angibt. Zum Beispiel, um ein Kontrollkästchen zu erstellen, wird ein Wert von
checkboxverwendet. Wenn weggelassen (oder ein unbekannter Wert angegeben ist), wird die Eingabetypetextverwendet, was ein Klartext-Eingabefeld erstellt.Erlaubte Werte sind im Abschnitt Eingabetypen oben aufgelistet.
value-
Der Wert der Eingabesteuerung. Wenn im HTML angegeben, ist dies der Anfangswert und von da an kann er jederzeit mit JavaScript abgerufen und abgeändert werden, indem auf die
value-Eigenschaft des jeweiligenHTMLInputElement-Objekts zugegriffen wird. Dasvalue-Attribut ist immer optional, sollte jedoch als obligatorisch fürcheckbox,radioundhiddenbetrachtet werden. width-
Gültig nur für den
imageEingabeknopf, ist diewidthdie Breite der Bilddatei, die angezeigt wird, um die grafische Sende-Schaltfläche darzustellen. Siehe den image Eingabetyp.
Nicht standardisierte Attribute
Die folgenden nicht-standardisierten Attribute sind auch in einigen Browsern verfügbar. Generell sollten Sie sie vermeiden, es sei denn, es lässt sich nicht anders regeln.
| Attribut | Beschreibung |
|---|---|
incremental |
Ob Ereignisse zur [{`search`}(/de/docs/Web/API/HTMLInputElement/search_event)]-Ereignisse versendet werden sollen, um Live-Suchergebnisse zu aktualisieren, während der Benutzer noch den Wert des Feldes bearbeitet. Nur WebKit und Blink (Safari, Chrome, Opera, usw.). |
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 er das Feld bearbeitet; dies wird verwendet, um eine geeignete Bezeichnung für diese Taste auf einer virtuellen Tastatur zu bestimmen. Da dieses Attribut veraltet ist, verwenden Sie |
orient |
Setzt die Ausrichtung des Bereichsschiebereglers. Nur Firefox. |
results |
Die maximale Anzahl an Elementen, die in der Dropdown-Liste vorheriger Suchanfragen angezeigt werden sollen. Nur Safari. |
webkitdirectory
|
Ein Boolean, das angibt, ob der Benutzer nur ein Verzeichnis (oder Verzeichnisse, wenn multiple ebenfalls vorhanden ist) auswählen darf
|
incrementalNicht standardisiert-
Das Boolean-Attribut
incrementalist eine WebKit und Blink-Erweiterung (also unterstützt von Safari, Opera, Chrome, usw.), das, wenn vorhanden, dem Benutzeragent mitteilt, die Eingabe als eine Live-Suche zu verarbeiten. Während der Benutzer den Wert des Feldes bearbeitet, sendet der Benutzeragent [{search}(/de/docs/Web/API/HTMLInputElement/search_event)]-Ereignisse zumHTMLInputElement-Objekt, das die Suchbox repräsentiert. Dadurch kann Ihr Code die Suchergebnisse in Echtzeit aktualisieren, während der Benutzer die Suche bearbeitet.Wenn
incrementalnicht angegeben ist, wird das [{search}(/de/docs/Web/API/HTMLInputElement/search_event)]-Ereignis nur gesendet, wenn der Benutzer explizit eine Suche auslöst (z.B. durch Drücken der Enter oder Return Taste während der Bearbeitung des Feldes).Das
search-Ereignis ist durch eine Implementierung definierte Intervalle rate-begrenzt, sodass es nicht häufiger gesendet wird als ein implementierungsdefiniertes Intervall. orientNicht standardisiert-
Ähnlich zur nicht standardisierten CSS-Eigenschaft -moz-orient, die die
<progress>und<meter>Elemente betrifft, definiert dasorientAttribut die Ausrichtung des Bereichsschiebereglers. Werte sindhorizontal, was bedeutet, dass der Bereich horizontal angezeigt wird, undvertical, wo der Bereich vertikal angezeigt wird. Siehe Erstellen vertikaler Formularelemente für einen modernen Ansatz zur Erstellung vertikaler Formularelemente. resultsNicht standardisiert-
Das Attribut
results- nur von Safari unterstützt - ist ein numerischer Wert, der es Ihnen erlaubt, die maximale Anzahl von Einträgen zu überschreiben, die im der<input>-Element nativ bereitgestellten Dropdown-Menü vorheriger Suchanfragen angezeigt werden sollen.Der Wert muss eine nicht-negative Dezimalzahl sein. Wenn nicht angegeben oder ein ungültiger Wert angegeben wird, wird die Standardmaximumanzahl der Einträge des Browsers verwendet.
webkitdirectoryNicht standardisiert-
Das Boolean-Attribut
webkitdirectory, wenn vorhanden, gibt an, dass nur Verzeichnisse verfügbar sein sollen, die der Benutzer im Datei-Auswahl-Interface auswählen kann. SieheHTMLInputElement.webkitdirectoryfür zusätzliche Details und Beispiele.Obwohl ursprünglich nur für WebKit-basierte Browser implementiert, ist
webkitdirectoryauch in Microsoft Edge sowie ab Firefox 50 und nicht darunter verwendbar. Trotz seiner relativ breiten Unterstützung ist es immer noch nicht standardisiert und sollte nicht verwendet werden, es sei denn, Sie haben keine Alternative.
Methoden
Die folgenden Methoden werden durch das HTMLInputElement-Interface bereitgestellt, welches <input>-Elemente im DOM repräsentiert. Ebenfalls verfügbar sind die Methoden, die durch die übergeordneten Interfaces HTMLElement, Element, Node und EventTarget spezifiziert werden.
checkValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht; ansonsten gibt esfalsezurück und löst eininvalid-Ereignis am Element aus. reportValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht; ansonsten gibt esfalsezurück, löst eininvalid-Ereignis am 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. Für Elemente ohne auswählbaren Textinhalt (wie ein visueller Farbwähler oder Datums-Eingabe) macht diese Methode nichts. setCustomValidity()-
Setzt eine benutzerdefinierte Nachricht, die angezeigt wird, wenn der Wert des Eingabeelements ungültig ist.
setRangeText()-
Setzt den Inhalt des angegebenen Zeichenbereichs im Eingabeelement auf eine bestimmte Zeichenkette. Ein
selectMode-Parameter ist verfügbar, um zu steuern, wie der vorhandene Inhalt betroffen ist. setSelectionRange()-
Wählt den angegebenen Zeichenbereich innerhalb eines textuellen Eingabeelements aus. Macht nichts für Eingaben, die nicht als Texteingabefelder präsentiert werden.
showPicker()-
Zeigt den Browser-Picker für das Eingabeelement an, das normalerweise angezeigt würde, wenn das Element ausgewählt wird, jedoch ausgelöst durch einen Tastendruck oder eine andere Benutzerinteraktion.
stepDown()-
Verringert den Wert einer numerischen Eingabe standardmäßig um eins oder um die angegebene Anzahl von Einheiten.
stepUp()-
Erhöht den Wert einer numerischen Eingabe um eins oder um die angegebene Anzahl von Einheiten.
CSS
Inputs, als ersetzte Elemente, haben einige Merkmale, die auf nicht-formbezogene Elemente nicht zutreffen. Es gibt CSS-Selektoren, die speziell Formularsteuerungen auf Basis ihrer UI-Features anvisieren können, auch bekannt als UI-Pseudo-Klassen. Das Input-Element kann auch nach Typ mit Attributselektoren gezielt angesprochen werden. Es gibt einige besonders nützliche Eigenschaften.
UI-Pseudo-Klassen
| Pseudo-Klasse | Beschreibung |
|---|---|
:enabled |
Jedes derzeit aktivierbare Element, das aktiviert (ausgewählt, angeklickt, hineingeschrieben etc.) oder fokussiert werden kann und auch einen deaktivierten Zustand hat, in dem es nicht aktiviert oder fokussiert werden kann. |
:disabled |
Jedes derzeit deaktivierte Element, das einen aktivierten Zustand hat, d.h. es könnte ansonsten aktiviert (ausgewählt, angeklickt, hineingeschrieben etc.) oder fokussiert werden, wenn es nicht deaktiviert wäre. |
:read-only |
Element, das vom Benutzer nicht bearbeitet werden kann |
:read-write |
Element, das vom Benutzer bearbeitet werden kann. |
:placeholder-shown |
Element, das derzeit placeholder-Text anzeigt, einschließlich <input>- und <textarea>-Elementen mit dem placeholder-Attribut, das bisher keinen Wert hat.
|
:default |
Formularelemente, die der Standard in einer Gruppe verwandter Elemente sind. Passt auf checkbox und radio-Eingabetypen, die beim Laden oder Rendern der Seite angekreuzt waren. |
:checked |
Passt auf checkbox und radio-Eingabetypen, die derzeit angekreuzt sind (und das <option> in einem <select>, das derzeit ausgewählt ist).
|
:indeterminate |
checkbox-Elemente, deren indeterminate-Eigenschaft durch JavaScript auf true gesetzt wurde, radio-Elemente, wenn alle Radioknöpfe mit dem gleichen Namenwert im Formular nicht angekreuzt sind, und <progress>-Elemente in einem 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 nicht gültig sind. Passt auf ein Formularelement, dessen Wert den durch seine Attribute festgelegten Einschränkungen wie required, pattern, step und max nicht entspricht.
|
:in-range |
Eine nicht leere Eingabe, deren aktueller Wert innerhalb der durch die Attribute min und max und den step festgelegten Bereichsgrenzen liegt.
|
:out-of-range |
Eine nicht leere Eingabe, deren aktueller Wert NICHT innerhalb der durch die Attribute min und max festgelegten Bereichsgrenzen liegt oder nicht den step-Einschränkungen entspricht.
|
:required |
<input>, <select>- oder <textarea>-Element, das das required-Attribut gesetzt hat. Passt nur auf Elemente, die erforderlich sein können. Das Attribut auf einem nicht-erforderlichen Element führt nicht zu einer Übereinstimmung.
|
:optional |
<input>, <select>- oder <textarea>-Element, das das required-Attribut NICHT gesetzt hat. Passt nicht auf Elemente, die nicht erforderlich sein können.
|
:blank |
<input>- und <textarea>-Elemente, die derzeit keinen Wert haben.
|
:user-invalid |
Ähnlich wie :invalid, aber es wird bei verlassen des Feldes aktiviert. Passt auf eine ungültige Eingabe, jedoch nur nach der Benutzerinteraktion, z.B. durch Fokussierung auf die Steuerung, Verlassen der Steuerung oder Versuch, das Formular mit der ungültigen Steuerung abzuschicken.
|
:open |
<input>-Elemente, die einen Picker anzeigen, mit dem der Benutzer einen Wert auswählen kann (z.B. <input type="color">) — jedoch nur, wenn das Element im offenen Zustand ist, das heißt, wenn der Picker angezeigt wird.
|
Pseudo-Klassen Beispiel
Wir können ein Label für ein Kontrollkästchen basierend darauf stylen, ob das Kontrollkästchen aktiviert ist oder nicht. In diesem Beispiel stylen wir die color und font-weight des <label>, das unmittelbar nach einem angekreuzten Input folgt. Wir haben keine Stile angewendet, wenn das input nicht angekreuzt ist.
input:checked + label {
color: red;
font-weight: bold;
}
Attributselektoren
Es ist möglich, verschiedene Typen von Formularsteuerungen basierend auf ihrem type mit Attributselektoren anzuvisieren. CSS-Attributselektoren matchen Elemente basierend entweder auf der bloßen Anwesenheit 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 Placeholder-Text in einem durchscheinenden oder hellgrauen Ton. Das ::placeholder-Pseudo-Element ist der placeholder-Text des Inputs. Es kann mit einem begrenzten Satz von CSS-Eigenschaften gestylt werden.
::placeholder {
color: blue;
}
Nur der Satz von CSS-Eigenschaften, der auf das ::first-line-Pseudo-Element angewendet werden kann, kann in einer Regel verwendet werden, die ::placeholder in ihrem Selektor enthält.
caret-color
Eine spezifische Eigenschaft, die auf Eingabefelder bezogen ist, ist die CSS-Eigenschaft caret-color, die es Ihnen ermöglicht, die Farbe zu setzen, mit der der Texteingabe-Caret gezeichnet wird:
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 Standardgröße.) Diese Eigenschaft ermöglicht es Ihnen, das Standardverhalten zu überschreiben, sodass sich Formularsteuerungen in ihrer Größe an ihren Inhalt anpassen können.
Diese Eigenschaft wird typischerweise verwendet, um Eingabefelder zu erstellen, die ihren Inhalt umwickeln und wachsen, je mehr Text eingegeben wird. Dies funktioniert mit Eingabetypen, die direkte Texteingaben akzeptieren (z.B. 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 dies der Fall ist, können die Position und die Größe des Elements sowie die Platzierung innerhalb seines Rahmens mithilfe der CSS-Eigenschaften object-position und object-fit angepasst werden.
Styling
Für weitere Informationen zum Hinzufügen von Farbe zu Elementen in HTML siehe:
Siehe auch:
Zusätzliche Funktionen
>Labels
Labels sind erforderlich, um erklärenden Text mit einem <input> zu verknüpfen. Das <label>-Element liefert erklärende Informationen über ein Formularfeld, das immer sinnvoll ist (abgesehen von eventuellen Layoutbedenken). Es ist nie eine schlechte Idee, ein <label> zu verwenden, um zu erklären, was in ein <input> oder <textarea> eingegeben werden sollte.
Zugehörige Labels
Die semantische Paarung von <input>- und <label>-Elementen ist nützlich für unterstützende Technologien wie Bildschirmleser. Indem Sie sie mithilfe des for-Attributs des <label> paaren, binden Sie das Label an das Input, sodass Bildschirmleser Eingaben den Benutzern präziser beschreiben können.
Es genügt nicht, einfachen Text neben das <input>-Element zu setzen. Vielmehr erfordern Benutzerfreundlichkeit und Barrierefreiheit die Einbindung 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 nicht barrierefrei: Es gibt keine Beziehung zwischen dem Eingabehinweis und dem <input>-Element.
Zusätzlich zu einem zugänglichen Namen bietet das Label eine größere Klickfläche für Maus- und Touch-Benutzer. Durch das Paaren eines <label> mit einem <input> hat das Klicken auf eines der beiden den Effekt, das <input> zu fokussieren. Wenn Sie einfachen Text verwenden, um Ihr Input zu "labeln", geschieht das nicht. Wenn der Hinweis Teil des Aktivierungsbereichs für das Input ist, hilft das Personen mit motorischen Kontrollstörungen.
Als Webentwickler sollten wir nie davon ausgehen, dass Menschen all das wissen, was wir wissen. Die Vielfalt der Menschen, die das Web nutzen – und damit auch Ihre Website – garantiert praktisch, dass einige Ihrer Seitenbesucher einige Varianten in ihren Denkprozessen und/oder Lebensumständen aufweisen, die dazu führen, dass sie Ihre Formulare sehr unterschiedlich von Ihnen interpretieren, ohne klare und korrekt dargestellte Labels.
Platzhalter sind nicht barrierefrei
Das placeholder-Attribut lässt Sie Text angeben, der innerhalb des Inhaltsbereichs des <input>-Elements selbst erscheint, wenn es leer ist. Der Platzhalter sollte nie erforderlich sein, um Ihre Formulare zu verstehen. Es ist kein Label und sollte deshalb nicht als Ersatz verwendet werden, weil es das nicht ist. Der Platzhalter dient dazu, einen Hinweis darauf zu geben, wie ein eingegebener Wert aussehen sollte und nicht als Erklärung oder Aufforderung.
Nicht nur, dass der Platzhalter für Bildschirmleser nicht zugänglich ist, sondern auch, wenn der Benutzer irgendeinen Text in das Formulareingabefeld eingibt oder wenn das Formulareingabefeld 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 nach Möglichkeit nicht das placeholder-Attribut. Wenn Sie ein <input>-Element labeln müssen, verwenden Sie das <label>-Element.
Client-seitige Validierung
Warnung:
Client-seitige Validierung ist nützlich, garantiert jedoch nicht, dass der Server gültige Daten erhält. Wenn die Daten in einem bestimmten Format vorliegen müssen, überprüfen Sie sie immer auch serverseitig und geben Sie eine 400 HTTP-Antwort zurück, wenn das Format ungültig ist.
Zusätzlich zur Verwendung von CSS, um Eingaben basierend auf den UI-Zuständen :valid oder :invalid zu stylen, basierend auf dem aktuellen Zustand jeder Eingabe, wie im Abschnitt UI-Pseudo-Klassen oben beschrieben, ermöglicht der Browser eine Client-seitige Validierung bei (versuchter) Formularübermittlung. Bei der Formularübermittlung, wenn ein Formularelement die Constraint-Validierung nicht besteht, zeigen unterstützte Browser eine Fehlermeldung beim ersten ungültigen Formularelement an und zeigen eine Standardmeldung basierend auf dem Fehlertyp oder eine von Ihnen festgelegte Nachricht an.
Einige Eingabetypen und andere Attribute begrenzen, welche Werte für ein bestimmtes Eingabefeld 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. Es können verschiedene Fehler 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 ist (nicht den Anforderungen des step-Attributs entspricht) oder typeMismatch, wenn der Wert keine Zahl ist.
Für die Eingabetypen, deren Bereich möglicher Werte periodisch ist (d.h. bei den höchstmöglichen Werten, wird der Bereich wieder von vorne begonnen, anstatt zu enden), ist es möglich, dass die Werte der Eigenschaften max und min umgekehrt sind, was anzeigt, dass der Bereich der zulässigen Werte bei min beginnt, bis zum niedrigstmöglichen Wert geht und dann weiter bis max reicht. Dies ist besonders nützlich für Daten und Zeiten, zum Beispiel wenn Sie einen Bereich von 20:00 Uhr bis 8:00 Uhr zulassen möchten:
<input type="time" min="20:00" max="08:00" name="overnight" />
Bestimmte Attribute und ihre Werte können zu einem spezifischen Fehler ValidityState führen:
| Attribut | Relevante Eigenschaft | Beschreibung |
|---|---|---|
max |
[`validityState.rangeOverflow`](/de/docs/Web/API/ValidityState/rangeOverflow) |
Tritt auf, wenn der Wert größer als der Höchstwert 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 ist als die durch die maxlength-Eigenschaft erlaubte Anzahl
|
min |
[`validityState.rangeUnderflow`](/de/docs/Web/API/ValidityState/rangeUnderflow) |
Tritt auf, wenn der Wert kleiner als der Mindestwert 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 ist als die durch die minlength-Eigenschaft erforderliche Anzahl
|
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 nicht übereinstimmt.
|
required |
[`validityState.valueMissing`](/de/docs/Web/API/ValidityState/valueMissing) |
Tritt auf, wenn das required-Attribut vorhanden ist, aber der Wert null ist oder Radio- oder Checkbox nicht aktiviert ist.
|
step |
[`validityState.stepMismatch`](/de/docs/Web/API/ValidityState/stepMismatch) |
Der Wert entspricht nicht dem Schrittinkrement. Standardinkrement ist 1, daher sind nur ganze Zahlen auf type="number" gültig, wenn Step nicht eingeschlossen 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, z.B. wenn eine E-Mail kein @ enthält oder eine URL kein Protokoll enthält.
|
Wenn ein Formularelement nicht das required-Attribut hat, ist kein Wert oder eine leere Zeichenkette nicht ungültig. Selbst wenn die oben genannten Attribute vorhanden sind, mit Ausnahme von required, wird eine leere Zeichenkette nicht zu einem Fehler führen.
Wir können Grenzen festlegen, welche Werte wir akzeptieren, und unterstützende Browser validieren diese Formularwerte nativ und benachrichtigen den Benutzer, falls bei der Übermittlung des Formulars ein Fehler auftritt.
Zusätzlich zu den in der Tabelle oben beschriebenen Fehlern enthält das validityState-Interface die booleschen nur-lese-Eigenschaften badInput, valid und customError. Das Validitätsobjekt umfasst:
validityState.valueMissingvalidityState.typeMismatchvalidityState.patternMismatchvalidityState.tooLongvalidityState.tooShortvalidityState.rangeUnderflowvalidityState.rangeOverflowvalidityState.stepMismatchvalidityState.badInputvalidityState.validvalidityState.customError
Für jede dieser booleschen Eigenschaften gilt: Ein Wert von true zeigt an, dass der angegebene Gültigkeitsgrund tatsächlich nicht zutrifft, mit Ausnahme der valid-Eigenschaft, die true ist, wenn der Wert des Elements alle Einschränkungen erfüllt.
Wenn ein Fehler auftritt, werden unterstützende Browser sowohl den Benutzer benachrichtigen als auch die Übermittlung des Formulars verhindern. Ein Hinweis: Wenn eine benutzerdefinierte Fehlermeldung auf einen wahrheitsgetreuen Wert (irgendetwas außer der leeren Zeichenkette oder null) gesetzt wird, wird die Formularübermittlung verhindert. Wenn keine benutzerdefinierte Fehlermeldung vorliegt und keiner der anderen Werte true zurückgibt, ist valid true und das Formular kann übermittelt werden.
function validate(input) {
let validityState = input.validity;
if (validityState.valueMissing) {
input.setCustomValidity("A value is required");
} else if (validityState.rangeUnderflow) {
input.setCustomValidity("Your value is too low");
} else if (validityState.rangeOverflow) {
input.setCustomValidity("Your value is too high");
} else {
input.setCustomValidity("");
}
}
Die letzte Zeile, die die benutzerdefinierte Fehlermeldung auf die leere Zeichenkette setzt, ist wichtig. Wenn der Benutzer einen Fehler macht und die Gültigkeit gesetzt ist, wird es bis zur Nachricht null nicht gesendet, selbst wenn alle Werte gültig sind.
Beispiel für Benutzerdefinierte Validierungsfehler
Wenn Sie beim Versagen der Validierung eines Feldes eine benutzerdefinierte Fehlermeldung anzeigen möchten, müssen Sie die Constraint Validation API verwenden, die für <input> (und verwandte) Elemente verfügbar ist. Betrachten 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 dies eine Standardfehlermeldung erzeugt, wenn Sie versuchen, das Formular abzusenden, ohne entweder einen gültigen Wert einzugeben oder mit einem Wert, der nicht dem pattern entspricht.
Wenn Sie stattdessen benutzerdefinierte Fehlermeldungen anzeigen möchten, können Sie JavaScript wie das folgende 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 so ausgegeben:
Zusammengefasst:
- Wir überprüfen den gültigen Zustand des Eingabeelements jedes Mal, wenn sich sein Wert ändert, indem wir die
checkValidity()-Methode über deninput-Event-Handler aufrufen. - Wenn der Wert ungültig ist, wird ein
invalid-Ereignis ausgelöst, und dieinvalid-Ereignishandler-Funktion wird ausgeführt. Innerhalb dieser Funktion ermitteln wir, ob der Wert ungültig ist, weil er leer ist oder weil er nicht dem Muster entspricht, und setzen eine benutzerdefinierte Validitätsfehlermeldung. - Das Ergebnis ist, dass, wenn der Eingabewert ungültig ist, wenn die Absenden-Schaltfläche gedrückt wird, eine der benutzerdefinierten Fehlermeldungen angezeigt wird.
- Wenn es gültig ist, wird es wie erwartet übermittelt. Dafür muss die benutzerdefinierte Validität aufgehoben werden, indem
setCustomValidity()mit einem leeren Zeichenkettenwert aufgerufen wird. Wir tun dies daher jedes Mal, wenn dasinput-Ereignis ausgelöst wird. Wenn Sie dies nicht tun und vorher eine benutzerdefinierte Validität festgelegt war, wird die Eingabe als ungültig registriert, selbst wenn sie momentan einen gültigen Wert hat, der beim Absenden übermittelt wird.
Hinweis: Validieren Sie immer sowohl die Eingabebeschränkungen auf Client-Seite als auch auf Server-Seite. Constraint-Validierung hebt nicht die Notwendigkeit einer Validierung auf der Server-Seite auf. Ungültige Werte können immer noch von älteren Browsern oder von böswilligen Akteuren gesendet werden.
Hinweis:
Firefox unterstützte für viele Versionen ein proprietäres Fehlerattribut – x-moz-errormessage –, das es Ihnen ermöglichte, benutzerdefinierte Fehlermeldungen in ähnlicher Weise festzulegen. Dies wurde ab Version 66 entfernt (siehe Firefox-Bug 1513890).
Lokalisierung
Die zulässigen Eingaben für bestimmte <input>-Typen hängen von der Spracheinheit ab. In einigen Orten ist 1.000,00 eine gültige Zahl, während in anderen Orten die gültige Schreibweise 1,000.00 ist.
Firefox verwendet die folgenden Heuristiken, um das Gebietsschema zu bestimmen, mit dem die Eingaben des Benutzers validiert werden sollen (zumindest für type="number"):
- Versuchen Sie die Sprache, die durch ein
lang/xml:lang-Attribut am Element oder einem seiner Elternteile angegeben ist. - Versuchen Sie die Sprache, die durch einen beliebigen
Content-LanguageHTTP-Header angegeben wird. Oder - Wenn keine angegeben ist, verwenden Sie das Gebietsschema des Browsers.
Barrierefreiheit
>Labels
Beim Einfügen von Eingaben ist es eine Barrierefreiheitserforderlichkeit, Labels hinzuzufügen. Dies ist notwendig, damit Benutzer, die unterstützende Technologien verwenden, wissen, für was die Eingabe gedacht ist. Auch das Klicken oder Berühren eines Labels gibt dem zugehörigen Formularelement den Fokus. Dies verbessert die Zugänglichkeit und Benutzerfreundlichkeit für sehende Nutzer, erhöht die Fläche, die ein Benutzer anklicken oder berühren kann, um das Formularelement zu aktivieren. Dies ist besonders nützlich (und sogar erforderlich) für Radio-Buttons und Checkboxen, die klein sind. Für weitere Informationen zu Labels allgemein siehe Labels.
Das folgende ist ein Beispiel dafür, wie man das <label> mit einem <input>-Element im oben beschriebenen Stil verknüpft. 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 Fläche bereitstellen, die groß genug ist, um sie einfach zu aktivieren. Dies hilft einer Vielzahl von Menschen, darunter Menschen mit motorischen Kontrollproblemen und Menschen, die ungenaue Formen der Eingabe wie einen Stylus oder Finger verwenden. Eine minimale interaktive Größe von 44×44 CSS-Pixeln wird empfohlen.
Technische Zusammenfassung
| Inhaltskategorien |
Flussinhalt, gelistet, übermittler, zurücksetzer, formularassoziiertes Element,
Phraseninhalt. Wenn der type nicht
hidden ist, dann ist es ein labelbares Element, fühlbarer Inhalt.
|
|---|---|
| Zulässiger Inhalt | Keiner; es ist ein Void-Element. |
| Tag-Weglassung | Muss einen Start-Tag haben und darf keinen End-Tag haben. |
| Zulässige Eltern | Jedes Element, das Phraseninhalt akzeptiert. |
| Implizierte ARIA-Rolle |
|
| Zulässige ARIA-Rollen |
|
| DOM-Interface | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
Spezifikationen
| Specification |
|---|
| HTML> # the-input-element> |