<input>: HTML-Eingabeelement
Baseline
Weitgehend verfügbar
*
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Das HTML-Element <input> wird verwendet, um interaktive Steuerelemente für Webformulare zu erstellen, über die Daten von Benutzern entgegengenommen werden. Je nach Gerät und User-Agent stehen zahlreiche Arten von Eingabedaten und Steuerelementen zur Verfügung. Aufgrund der vielen möglichen Kombinationen aus Eingabetypen und Attributen gehört <input> zu den leistungsfähigsten und komplexesten Elementen in HTML.
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, hängt wesentlich vom Wert seines type-Attributs ab. Deshalb werden die verschiedenen Typen auf eigenen Referenzseiten behandelt. Ist dieses Attribut nicht angegeben, wird standardmäßig der Typ text verwendet.
Folgende Typen sind verfügbar:
| Typ | Beschreibung | Einfache Beispiele |
|---|---|---|
| button |
Eine Schaltfläche ohne Standardverhalten, die den Wert des value-Attributs anzeigt. Standardmäßig ist dieser Wert leer.
|
|
| checkbox | Ein Kontrollkästchen, mit dem ein einzelner Wert ausgewählt oder abgewählt werden kann. |
|
| color | Ein Steuerelement zur Angabe einer Farbe. In unterstützenden Browsern öffnet es bei Aktivierung eine Farbauswahl. |
|
| date | Ein Steuerelement zur Eingabe eines Datums (Jahr, Monat und Tag, ohne Uhrzeit). In unterstützenden Browsern öffnet es bei Aktivierung eine Datumsauswahl oder Zahlenräder für Jahr, Monat und Tag. |
|
| datetime-local | Ein Steuerelement zur Eingabe von Datum und Uhrzeit ohne Zeitzone. In unterstützenden Browsern öffnet es bei Aktivierung eine Datumsauswahl oder Zahlenräder für Datums- und Uhrzeitbestandteile. |
|
Ein Feld zum Bearbeiten einer E-Mail-Adresse. Es sieht wie ein
text-Eingabefeld aus, verfügt aber über Validierungsregeln
und zeigt in unterstützenden Browsern und auf Geräten mit dynamischer Tastatur
eine passende Tastatur an.
|
|
|
| file |
Ein Steuerelement, mit dem Benutzer eine Datei auswählen können.
Verwenden Sie das Attribut accept, um festzulegen, welche Dateitypen ausgewählt werden können.
|
|
| hidden | Ein nicht angezeigtes Steuerelement, dessen Wert an den Server übermittelt wird. In der nächsten Spalte gibt es ein Beispiel – es ist allerdings verborgen! | |
| image |
Eine grafische submit-Schaltfläche. Sie zeigt ein Bild an, das durch das Attribut src festgelegt wird.
Der Wert des Attributs alt wird angezeigt, wenn die Bildressource unter src fehlt.
|
|
| month | Ein Steuerelement zur Eingabe eines Monats und eines Jahres ohne Zeitzone. |
|
| number | Ein Steuerelement zur Eingabe einer Zahl. Es zeigt Steuerelemente zum schrittweisen Ändern des Werts an und bietet eine standardmäßige Validierung. Auf einigen Geräten mit dynamischer Tastatur wird ein Ziffernblock angezeigt. |
|
| password | Ein einzeiliges Textfeld, dessen Wert verdeckt dargestellt wird. Benutzer werden gewarnt, wenn die Website nicht sicher ist. |
|
| radio |
Ein Optionsfeld, mit dem einer von mehreren Werten mit demselben name-Wert ausgewählt werden kann.
|
|
| range |
Ein Steuerelement zur Eingabe einer Zahl, deren genauer Wert nicht wichtig ist.
Es wird als Schieberegler dargestellt, der standardmäßig auf dem mittleren Wert steht.
Zusammen mit min und max wird der Bereich zulässiger Werte festgelegt.
|
|
| reset | Eine Schaltfläche, die den Inhalt des Formulars auf die Standardwerte zurücksetzt. Nicht empfohlen. |
|
| search | Ein einzeiliges Textfeld zur Eingabe von Suchbegriffen. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. In unterstützenden Browsern kann es ein Symbol zum Leeren des Felds enthalten. Auf einigen Geräten mit dynamischer Tastatur wird statt der Eingabetaste ein Suchsymbol angezeigt. |
|
| submit | Eine Schaltfläche, die das Formular übermittelt. |
|
| tel | Ein Steuerelement zur Eingabe einer Telefonnummer. Auf einigen Geräten mit dynamischer Tastatur wird eine Telefontastatur angezeigt. |
|
| text | Der Standardtyp. Ein einzeiliges Textfeld. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. |
|
| time | Ein Steuerelement zur Eingabe einer Uhrzeit ohne Zeitzone. |
|
| url |
Ein Feld zur Eingabe einer URL. Es sieht wie ein text-Eingabefeld aus,
verfügt aber über Validierungsregeln und zeigt in unterstützenden Browsern
und auf Geräten mit dynamischer Tastatur eine passende Tastatur an.
|
|
| week | Ein Steuerelement zur Eingabe eines Datums, das aus einem Wochenjahr und einer Wochennummer ohne Zeitzone besteht. |
|
| Veraltete Werte | ||
datetime |
Ein Steuerelement zur Eingabe von Datum und Uhrzeit (Stunde, Minute, Sekunde und Sekundenbruchteile) auf Grundlage der UTC-Zeitzone. |
|
Attribute
Das <input>-Element ist vor allem wegen seiner Attribute so leistungsfähig. Das wichtigste davon ist das oben anhand von Beispielen beschriebene Attribut type. Da jedes <input>-Element unabhängig vom Typ auf der Schnittstelle HTMLInputElement basiert, haben alle technisch gesehen genau dieselben Attribute. Tatsächlich wirken sich die meisten Attribute jedoch nur auf eine bestimmte Teilmenge der Eingabetypen aus. Zudem hängt die Wirkung einiger Attribute vom jeweiligen Eingabetyp ab.
Dieser Abschnitt enthält zunächst eine Tabelle aller Attribute mit kurzen Beschreibungen. Anschließend werden die einzelnen Attribute und die zugehörigen Eingabetypen ausführlicher beschrieben. Attribute, die für die meisten oder alle Eingabetypen gelten, werden weiter unten näher erläutert. Attribute, die nur für bestimmte Eingabetypen gelten – oder für alle gelten, bei einem bestimmten Typ aber ein besonderes Verhalten aufweisen –, werden stattdessen auf den Referenzseiten der jeweiligen Typen dokumentiert.
Zu den Attributen des <input>-Elements gehören die globalen HTML-Attribute sowie:
| Attribut | Typ(en) | Beschreibung |
|---|---|---|
accept |
file |
Hinweis auf die erwarteten Dateitypen bei Steuerelementen zum Hochladen von Dateien |
alpha |
color |
Deckkraft der Farbe |
alt |
image |
Alternativtext für den Typ image; für die Barrierefreiheit erforderlich |
autocapitalize |
alle außer url, email und password |
Steuert die automatische Großschreibung eingegebenen Texts |
autocomplete |
alle außer checkbox, radio und Schaltflächen |
Hinweis für das automatische Ausfüllen von Formularen |
capture |
file |
Methode zur Medienaufnahme bei Steuerelementen zum Hochladen von Dateien |
checked |
checkbox, radio |
Gibt an, ob das Steuerelement ausgewählt ist |
colorspace |
color |
Der Farbraum, der zur Auswahl des Farbwerts verwendet werden soll |
dirname |
hidden, text, search, url, tel, email |
Name des Formularfelds, mit dem die Schreibrichtung des Elements beim Übermitteln des Formulars gesendet wird |
disabled |
alle | Gibt an, ob das Formularsteuerelement deaktiviert ist |
form |
alle | Verknüpft das Steuerelement mit einem Formularelement |
formaction |
image, submit |
URL, an die das Formular übermittelt wird |
formenctype |
image, submit |
Kodierungstyp der Formulardaten bei der Übermittlung |
formmethod |
image, submit |
HTTP-Methode für die Formularübermittlung |
formnovalidate |
image, submit |
Umgeht die Validierung der Formularsteuerelemente bei der Übermittlung |
formtarget |
image, submit |
Browsing-Kontext für die Formularübermittlung |
height |
image |
Wie das Attribut height für <img>; vertikale Abmessung |
list |
alle außer hidden, password, checkbox, radio und Schaltflächen |
Wert des id-Attributs des <datalist> mit Vorschlägen zur automatischen Vervollständigung |
max |
date, month, week, time, datetime-local, number, range |
Höchstwert |
maxlength |
text, search, url, tel, email, password |
Maximale Länge (Anzahl der Zeichen) von value |
min |
date, month, week, time, datetime-local, number, range |
Mindestwert |
minlength |
text, search, url, tel, email, password |
Mindestlänge (Anzahl der Zeichen) von value |
multiple |
email, file |
Boolesches Attribut; gibt an, ob mehrere Werte erlaubt sind |
name |
alle | Name des Formularsteuerelements; wird als Teil eines Name-Wert-Paars mit dem Formular übermittelt |
pattern |
text, search, url, tel, email, password |
Muster, dem value entsprechen muss, um gültig zu sein |
placeholder |
text, search, url, tel, email, password, number |
Text, der im Formularsteuerelement erscheint, solange kein Wert festgelegt ist |
popovertarget |
button |
Legt ein <input type="button"> als Steuerelement für ein Popover-Element fest |
popovertargetaction |
button |
Legt die Aktion fest, die ein Popover-Steuerelement ausführen soll |
readonly |
alle außer hidden, range, color, checkbox, radio und Schaltflächen |
Boolesches Attribut; der Wert kann nicht bearbeitet werden |
required |
alle außer hidden, range, color und Schaltflächen |
Boolesches Attribut; damit das Formular übermittelt werden kann, muss ein Wert angegeben oder das Steuerelement ausgewählt sein |
size |
text, search, url, tel, email, password |
Größe des Steuerelements |
src |
image |
Wie das Attribut src für <img>; Adresse der Bildressource |
step |
date, month, week, time, datetime-local, number, range |
Gültige Wertabstände |
switch |
checkbox |
Gibt an, ob das Kontrollkästchen als Schalter dargestellt werden soll |
type |
alle | Typ des Formularsteuerelements |
value |
alle außer image |
Wert des Steuerelements; bei Angabe im HTML entspricht er dem Anfangswert |
width |
image |
Wie das Attribut width für <img> |
Nach den Beschreibungen der Standardattribute werden einige weitere, nicht standardisierte Attribute aufgeführt.
Einzelne Attribute
accept-
Das Attribut
acceptgilt nur für den Eingabetypfileund legt fest, welche Dateitypen in einemfile-Steuerelement zum Hochladen ausgewählt werden können. Siehe den Eingabetyp file. alpha-
Das Attribut
alphagilt nur für den Eingabetypcolorund ermöglicht es Benutzern, die Deckkraft der ausgewählten Farbe festzulegen. alt-
Das Attribut
altgilt nur für die Schaltfläche vom Typimage. Es stellt Alternativtext für das Bild bereit und zeigt den Attributwert an, wenn die Bildressource untersrcfehlt oder nicht geladen werden kann. Siehe den Eingabetyp image. autocapitalize-
Steuert, ob eingegebener Text automatisch großgeschrieben wird und gegebenenfalls auf welche Weise. Weitere Informationen finden Sie auf der Seite zum globalen Attribut
autocapitalize. autocomplete-
(Kein boolesches Attribut!) Das Attribut
autocompleteerwartet eine durch Leerzeichen getrennte Zeichenfolge. Sie beschreibt, welche Art der automatischen Vervollständigung das Eingabefeld gegebenenfalls anbieten soll. Üblicherweise werden dabei zuvor in dasselbe Eingabefeld eingegebene Werte erneut angeboten. Es sind aber auch komplexere Formen möglich: Ein Browser könnte beispielsweise auf die Kontaktliste eines Geräts zugreifen, umemail-Adressen in einem E-Mail-Eingabefeld zu vervollständigen. Zulässige Werte finden Sie unterautocomplete.Das Attribut
autocompleteist fürhidden,text,search,url,tel,email,date,month,week,time,datetime-local,number,range,colorundpasswordgültig. Es wirkt sich nicht auf Eingabetypen aus, die keine Zahlen- oder Textdaten zurückgeben, und gilt für alle Eingabetypen außercheckbox,radio,fileund den Schaltflächentypen.Weitere Informationen, unter anderem zur Passwortsicherheit und dazu, wie sich
autocompletebeihiddengeringfügig von anderen Eingabetypen unterscheidet, finden Sie auf der Seite zum Attributautocomplete. autofocus-
Ein boolesches Attribut, das angibt, dass das Eingabefeld nach dem Laden der Seite automatisch den Fokus erhalten soll – oder nachdem das
<dialog>, das das Element enthält, angezeigt wurde.Hinweis: Ein Element mit dem Attribut
autofocuskann den Fokus erhalten, bevor das EreignisDOMContentLoadedausgelöst wird.Höchstens ein Element im Dokument darf das Attribut
autofocushaben. Ist es für mehrere Elemente angegeben, erhält das erste davon den Fokus.Das Attribut
autofocuskann nicht für Eingabefelder vom Typhiddenverwendet werden, da verborgene Eingabefelder keinen Fokus erhalten können.Warnung: Wenn ein Formularsteuerelement automatisch den Fokus erhält, kann dies Menschen mit Sehbeeinträchtigungen, die Screenreader verwenden, sowie Menschen mit kognitiven Beeinträchtigungen verwirren. Bei Verwendung von
autofocusversetzen Screenreader ihre Benutzer ohne vorherige Ankündigung direkt zum Formularsteuerelement.Berücksichtigen Sie die Barrierefreiheit sorgfältig, wenn Sie das Attribut
autofocusverwenden. Der automatische Fokus auf ein Steuerelement kann dazu führen, dass die Seite beim Laden scrollt. Auf manchen Touch-Geräten kann dadurch außerdem eine Bildschirmtastatur eingeblendet werden. Ein Screenreader gibt zwar die Beschriftung des fokussierten Formularsteuerelements aus, kündigt davor aber nichts an. Auch sehenden Benutzern kleiner Geräte kann dadurch der Kontext aus dem vorhergehenden Inhalt entgehen. capture-
Das mit der HTML-Media-Capture-Spezifikation eingeführte Attribut
capturegilt nur für den Eingabetypfile. Es legt in unterstützten Szenarien fest, welches Medium – Mikrofon, Video oder Kamera – verwendet werden soll, um eine neue Datei für das Hochladen mit demfile-Steuerelement aufzunehmen. Siehe den Eingabetyp file. checked-
checkedist ein boolesches Attribut für die Typenradioundcheckbox. Beiradiogibt es an, dass dieses Optionsfeld innerhalb der Gruppe gleichnamiger Optionsfelder aktuell ausgewählt ist. Beicheckboxgibt es an, dass das Kontrollkästchen beim Laden der Seite standardmäßig ausgewählt ist. Es gibt nicht an, ob das Kontrollkästchen derzeit ausgewählt ist: Ändert sich dessen Zustand, spiegelt dieses HTML-Attribut die Änderung nicht wider. (Nur das IDL-AttributcheckedvonHTMLInputElementwird aktualisiert.)Hinweis: Anders als bei anderen Eingabesteuerelementen werden die Werte von Kontrollkästchen und Optionsfeldern nur dann in die übermittelten Daten aufgenommen, wenn sie aktuell
checkedsind. In diesem Fall werden Name und Wert der ausgewählten Steuerelemente übermittelt.Hat beispielsweise ein Kontrollkästchen den
namefruitund denvaluecherryund ist es ausgewählt, enthalten die übermittelten Formulardatenfruit=cherry. Ist das Kontrollkästchen nicht ausgewählt, erscheint es überhaupt nicht in den Formulardaten. Der Standardwert vonvaluefür Kontrollkästchen und Optionsfelder iston. colorspace-
Das Attribut
colorspacegilt nur für den Eingabetypcolorund legt den Farbraum fest, den das Eingabefeldtype="color"verwendet. Mögliche aufgezählte Werte sind:"limited-srgb": Die Farbe liegt im sRGB-Farbraum. Dazu gehören Werte der Formatergb(),hsl(),hwb()und<hex-color>. Der Farbwert ist auf 8 Bit jer-,g- undb-Komponente begrenzt. Dies ist der Standardwert."display-p3": Der Display-P3-Farbraum, zum Beispielcolor(display-p3 1.84 -0.19 0.72 / 0.6)
dirname-
Das Attribut
dirnamegilt für die Eingabetypenhidden,text,search,url,telundemailund ermöglicht die Übermittlung der Schreibrichtung des Elements. Ist es vorhanden, übermittelt das Formularsteuerelement zwei Name-Wert-Paare: Das erste besteht ausnameundvalue. Beim zweiten ist der Wert des Attributsdirnameder Name undltroderrtlder vom Browser festgelegte Wert.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 -->Beim Übermitteln des obigen Formulars werden sowohl das
name-/value-Paarfruit=cherryals auch dasdirname-/Schreibrichtungs-Paarfruit-dir=ltrgesendet. Weitere Informationen finden Sie unter Attributdirname. disabled-
Ein boolesches Attribut, das angibt, dass Benutzer nicht mit dem Eingabefeld interagieren können. Deaktivierte Eingabefelder werden normalerweise blasser oder auf andere Weise als nicht verfügbar dargestellt.
Insbesondere empfangen deaktivierte Eingabefelder kein
click-Ereignis und werden nicht mit dem Formular übermittelt.Hinweis: Obwohl die Spezifikation dies nicht verlangt, speichert Firefox standardmäßig den dynamischen Deaktivierungszustand eines
<input>auch über das erneute Laden der Seite hinweg. Mit dem Attributautocompletekönnen Sie dieses Verhalten steuern. form-
Eine Zeichenfolge, die das
<form>-Element angibt, dem das Eingabefeld zugeordnet ist – seinen Formularbesitzer. Ist ein Wert vorhanden, muss er mit derideines<form>-Elements im selben Dokument übereinstimmen. Ist das Attribut nicht angegeben, wird das<input>-Element gegebenenfalls dem nächstgelegenen umgebenden Formular zugeordnet.Mit dem Attribut
formkönnen Sie ein Eingabefeld an beliebiger Stelle im Dokument platzieren und es dennoch in ein Formular an anderer Stelle im Dokument einbinden.Hinweis: Ein Eingabefeld kann nur einem Formular zugeordnet sein.
formaction-
Gilt nur für die Eingabetypen
imageundsubmit. Weitere Informationen finden Sie beim Eingabetyp submit. formenctype-
Gilt nur für die Eingabetypen
imageundsubmit. Weitere Informationen finden Sie beim Eingabetyp submit. formmethod-
Gilt nur für die Eingabetypen
imageundsubmit. Weitere Informationen finden Sie beim Eingabetyp submit. formnovalidate-
Gilt nur für die Eingabetypen
imageundsubmit. Weitere Informationen finden Sie beim Eingabetyp submit. formtarget-
Gilt nur für die Eingabetypen
imageundsubmit. Weitere Informationen finden Sie beim Eingabetyp submit. height-
Gilt nur für die Eingabeschaltfläche vom Typ
image.heightgibt die Höhe der Bilddatei an, mit der die grafische Schaltfläche zum Übermitteln dargestellt wird. Siehe den Eingabetyp image. id-
Ein für alle Elemente einschließlich aller Eingabetypen gültiges globales Attribut. Es legt eine Kennung (ID) fest, die innerhalb des gesamten Dokuments eindeutig sein muss. Sie dient dazu, das Element für Verknüpfungen zu identifizieren. Ihr Wert wird als Wert des Attributs
forvon<label>verwendet, um die Beschriftung mit dem Formularsteuerelement zu verknüpfen. Siehe<label>. inputmode-
Ein globales Attribut, das für alle Elemente gilt und Browsern einen Hinweis darauf gibt, welche Konfiguration der Bildschirmtastatur beim Bearbeiten des Elements oder seines Inhalts verwendet werden soll. Zu den Werten gehören
none,text,tel,url,email,numeric,decimalundsearch. list-
Der Wert des Attributs
listsollte dieideines<datalist>-Elements im selben Dokument sein.<datalist>stellt eine Liste vordefinierter Werte bereit, die Benutzern für dieses Eingabefeld vorgeschlagen werden. Werte in der Liste, die mit demtypenicht kompatibel sind, werden nicht als Vorschläge angezeigt. Die Werte sind Vorschläge, keine Vorgaben: Benutzer können einen Wert aus der Liste auswählen oder einen anderen eingeben.Das Attribut ist für
text,search,url,tel,email,date,month,week,time,datetime-local,number,rangeundcolorgültig.Laut Spezifikation wird das Attribut
listfürhidden,password,checkbox,radio,fileund sämtliche Schaltflächentypen nicht unterstützt.Je nach Browser sehen Benutzer möglicherweise eine vorgeschlagene Farbpalette, Markierungen entlang eines Schiebereglers oder sogar ein Eingabefeld, das sich wie ein
<select>öffnet, aber auch nicht aufgeführte Werte zulässt. Beachten Sie für die anderen Eingabetypen die Tabelle zur Browser-Kompatibilität.Siehe das Element
<datalist>. max-
Gilt für
date,month,week,time,datetime-local,numberundrangeund legt den größten zulässigen Wert fest. Überschreitet der im Element eingegebenevaluediesen Wert, schlägt die Constraint Validation fehl. Ist der Wert des Attributsmaxkeine Zahl, hat das Element keinen Höchstwert.Es gibt einen Sonderfall: Ist der Datentyp periodisch, etwa bei Datums- oder Uhrzeitangaben, darf der Wert von
maxkleiner sein als der vonmin. Das zeigt an, dass der Bereich über seinen Endpunkt hinausreichen kann. So lässt sich beispielsweise ein Zeitraum von 22 Uhr bis 4 Uhr festlegen. maxlength-
Gilt für
text,search,url,tel,emailundpasswordund legt die maximale Länge der Zeichenfolge fest, die Benutzer in das Feld eingeben können (gemessen in UTF-16-Codeeinheiten). Der Wert muss eine ganze Zahl ab 0 sein. Istmaxlengthnicht angegeben oder ungültig, hat das Feld keine maximale Länge. Der Wert muss außerdem größer oder gleich dem Wert vonminlengthsein.Die Constraint Validation schlägt fehl, wenn der eingegebene Text länger als
maxlengthUTF-16-Codeeinheiten ist. Standardmäßig verhindern Browser, dass Benutzer mehr Zeichen eingeben, als das Attributmaxlengtherlaubt. Die Constraint Validation wird nur angewendet, wenn Benutzer den Wert ändern. Weitere Informationen finden Sie unter Clientseitige Validierung. min-
Gilt für
date,month,week,time,datetime-local,numberundrangeund legt den kleinsten zulässigen Wert fest. Ist der im Element eingegebenevaluekleiner, schlägt die Constraint Validation fehl. Ist der Wert des Attributsminkeine Zahl, hat das Element keinen Mindestwert.Dieser Wert muss kleiner oder gleich dem Wert des Attributs
maxsein. Ist das Attributminvorhanden, aber ohne Wert oder ungültig, wird kein Mindestwert angewendet. Istmingültig und ein nicht leerer Wert kleiner als der festgelegte Mindestwert, verhindert die Constraint Validation die Formularübermittlung. Weitere Informationen finden Sie unter Clientseitige Validierung.Es gibt einen Sonderfall: Ist der Datentyp periodisch, etwa bei Datums- oder Uhrzeitangaben, darf der Wert von
maxkleiner sein als der vonmin. Das zeigt an, dass der Bereich über seinen Endpunkt hinausreichen kann. So lässt sich beispielsweise ein Zeitraum von 22 Uhr bis 4 Uhr festlegen. minlength-
Gilt für
text,search,url,tel,emailundpasswordund legt die Mindestlänge der Zeichenfolge fest, die Benutzer in das Feld eingeben können (gemessen in UTF-16-Codeeinheiten). Der Wert muss eine nicht negative ganze Zahl sein, die kleiner oder gleich dem Wert vonmaxlengthist. Istminlengthnicht angegeben oder ungültig, hat das Eingabefeld keine Mindestlänge.Die Constraint Validation schlägt fehl, wenn der eingegebene Text kürzer als
minlengthUTF-16-Codeeinheiten ist. Dadurch wird die Formularübermittlung verhindert. Die Constraint Validation wird nur angewendet, wenn Benutzer den Wert ändern. Weitere Informationen finden Sie unter Clientseitige Validierung. multiple-
Ist das boolesche Attribut
multiplegesetzt, können Benutzer im E-Mail-Feld mehrere durch Kommas getrennte E-Mail-Adressen eingeben oder bei einemfile-Eingabefeld mehrere Dateien auswählen. Siehe die Eingabetypen email und file. name-
Eine Zeichenfolge, die den Namen des Eingabesteuerelements festlegt. Dieser Name wird bei der Formularübermittlung zusammen mit dem Wert des Steuerelements gesendet.
Behandeln Sie
nameals erforderliches Attribut, auch wenn es formal keines ist. Ist für ein Eingabefeld keinnameangegeben oder istnameleer, wird sein Wert nicht mit dem Formular übermittelt! Auch deaktivierte Steuerelemente, nicht ausgewählte Optionsfelder und Kontrollkästchen sowie Reset-Schaltflächen werden nicht gesendet.Es gibt zwei Sonderfälle:
_charset_: Wird dies als Name eines<input>-Elements vom Typ hidden verwendet, setzt der User-Agent dessenvalueautomatisch auf die Zeichenkodierung, die zur Übermittlung des Formulars verwendet wird.isindex: Aus historischen Gründen ist der Nameisindexnicht zulässig.
Das Attribut
namebewirkt bei Optionsfeldern ein besonderes Verhalten.Innerhalb einer Gruppe gleichnamiger Optionsfelder kann jeweils nur eines ausgewählt sein. Wird ein anderes Optionsfeld der Gruppe ausgewählt, wird das bisher ausgewählte automatisch abgewählt. Bei der Formularübermittlung werden der Name und der Wert des ausgewählten Optionsfelds gesendet.
Wenn Sie mit der Tabulatortaste zu einer Gruppe gleichnamiger Optionsfelder wechseln und eines davon ausgewählt ist, erhält dieses den Fokus. Stehen die Optionsfelder im Quellcode nicht unmittelbar beieinander, beginnt die Tabulatornavigation durch die Gruppe beim ersten Optionsfeld, überspringt aber alle nicht ausgewählten Optionsfelder. Anders ausgedrückt: Ist eines ausgewählt, werden die nicht ausgewählten Optionsfelder der Gruppe mit der Tabulatortaste übersprungen. Ist keines ausgewählt, erhält die Gruppe den Fokus beim ersten gleichnamigen Optionsfeld.
Sobald eines der Optionsfelder einer Gruppe den Fokus hat, können Sie mit den Pfeiltasten durch alle gleichnamigen Optionsfelder navigieren, auch wenn sie im Quellcode nicht unmittelbar beieinanderstehen.
Erhält ein Eingabeelement einen
name, wird dieser Name zu einer Eigenschaft vonHTMLFormElement.elementsdes zugehörigen Formularelements. Wenn ein Eingabefeld dennameguestund ein anderes dennamehat-sizehat, können Sie den folgenden Code verwenden:jslet form = document.querySelector("form"); let guestName = form.elements.guest; let hatSize = form.elements["hat-size"];Nach Ausführung dieses Codes ist
guestNamedasHTMLInputElementfür das Feldguest, währendhatSizedas Objekt für das Feldhat-sizeist.Warnung: Vergeben Sie für Formularelemente keinen
name, der einer integrierten Eigenschaft des Formulars entspricht. Andernfalls würde die Referenz auf das entsprechende Eingabefeld die vordefinierte Eigenschaft oder Methode überschreiben. pattern-
Das Attribut
patterngilt fürtext,search,url,tel,emailundpassword. Daraus wird ein regulärer Ausdruck kompiliert, dem dervaluedes Eingabefelds entsprechen muss, damit die Constraint Validation erfolgreich ist. Es muss ein gültiger regulärer JavaScript-Ausdruck sein, wie er vom TypRegExpverwendet und in unserem Leitfaden zu regulären Ausdrücken beschrieben wird. Der Mustertext darf nicht von Schrägstrichen umschlossen sein. Beim Kompilieren des regulären Ausdrucks gilt:- Das Muster wird implizit mit
^(?:und)$umschlossen, sodass der gesamte Eingabewert übereinstimmen muss, also^(?:<pattern>)$. - Das Flag
'v'wird gesetzt, sodass das Muster als Folge von Unicode-Codepunkten statt als ASCII behandelt wird.
Ist das Attribut
patternvorhanden, aber ohne Wert oder ungültig, wird kein regulärer Ausdruck angewendet und das Attribut vollständig ignoriert. Ist das Muster gültig und entspricht ein nicht leerer Wert ihm nicht, verhindert die Constraint Validation die Formularübermittlung. Istmultiplevorhanden, wird der kompilierte reguläre Ausdruck mit jedem durch Kommas getrennten Wert abgeglichen.Hinweis: Wenn Sie das Attribut
patternverwenden, informieren Sie Benutzer durch einen erklärenden Text in der Nähe über das erwartete Format. Sie können auch ein Attributtitlehinzufügen, um die Anforderungen des Musters zu erläutern; die meisten Browser zeigen dessen Wert als Tooltip an. Die sichtbare Erläuterung ist für die Barrierefreiheit erforderlich. Der Tooltip ist eine Ergänzung.Weitere Informationen finden Sie unter Clientseitige Validierung.
- Das Muster wird implizit mit
placeholder-
Das Attribut
placeholdergilt fürtext,search,url,tel,email,passwordundnumber. Es gibt Benutzern einen kurzen Hinweis darauf, welche Informationen im Feld erwartet werden. Der Hinweis sollte aus einem Wort oder einer kurzen Formulierung bestehen, die den erwarteten Datentyp verdeutlicht, statt eine Erklärung oder Aufforderung zu sein. Der Text darf keine Wagenrückläufe oder Zeilenumbrüche enthalten. Soll ein Feld beispielsweise den Vornamen erfassen und lautet seine Beschriftung „Vorname“, könnte „z. B. Mustafa“ ein geeigneter Platzhalter sein.Hinweis: Das Attribut
placeholderist semantisch weniger hilfreich als andere Möglichkeiten, ein Formular zu erklären, und kann unerwartete technische Probleme mit Ihren Inhalten verursachen. Weitere Informationen finden Sie unter Beschriftungen. popovertarget-
Macht ein
<input type="button">-Element zu einer Schaltfläche, die ein Popover steuert. Als Wert wird die ID des zu steuernden Popover-Elements verwendet. Weitere Einzelheiten finden Sie auf der Einstiegsseite zur Popover API. Die Verknüpfung zwischen einem Popover und seiner aufrufenden Schaltfläche über das Attributpopovertargethat zwei weitere nützliche Auswirkungen:- Der Browser erstellt eine implizite Beziehung über
aria-detailsundaria-expandedzwischen Popover und aufrufender Schaltfläche. Außerdem ordnet er das angezeigte Popover an einer logischen Stelle in der Tastatur-Fokusreihenfolge ein. Dadurch ist das Popover für Benutzer von Tastaturen und assistiven Technologien (AT) besser zugänglich (siehe auch Barrierefreiheitsfunktionen von Popovers). - Der Browser erstellt eine implizite Ankerreferenz zwischen den beiden Elementen. Dadurch lassen sich Popovers mit CSS-Ankerpositionierung bequem relativ zu ihren Steuerelementen positionieren. Weitere Einzelheiten finden Sie unter Ankerpositionierung von Popovers.
- Der Browser erstellt eine implizite Beziehung über
popovertargetaction-
Legt fest, welche Aktion ein
<input type="button">-Steuerelement für das von ihm gesteuerte Popover-Element ausführt. Mögliche Werte sind:"hide"-
Die Schaltfläche verbirgt ein angezeigtes Popover. Ist das Popover bereits verborgen, geschieht nichts.
"show"-
Die Schaltfläche zeigt ein verborgenes Popover an. Ist das Popover bereits sichtbar, geschieht nichts.
"toggle"-
Die Schaltfläche wechselt zwischen sichtbarem und verborgenem Popover. Ein verborgenes Popover wird angezeigt, ein sichtbares verborgen. Wird
popovertargetactionweggelassen, ist"toggle"die Standardaktion der Schaltfläche.
readonly-
Ein boolesches Attribut, das angibt, dass Benutzer den Wert des Eingabefelds nicht bearbeiten können. Das Attribut
readonlywird von den Eingabetypentext,search,url,tel,email,date,month,week,time,datetime-local,numberundpasswordunterstützt.Weitere Informationen finden Sie unter HTML-Attribut:
readonly. required-
requiredist ein boolesches Attribut, das angibt, dass Benutzer einen Wert für das Eingabefeld angeben müssen, bevor das zugehörige Formular übermittelt werden kann. Das Attributrequiredwird von den Eingabetypentext,search,url,tel,email,date,month,week,time,datetime-local,number,password,checkbox,radioundfileunterstützt.Weitere Informationen finden Sie unter Clientseitige Validierung und HTML-Attribut:
required. size-
Das Attribut
sizegilt füremail,password,tel,urlundtextund legt fest, wie viel vom Eingabefeld angezeigt wird. Im Wesentlichen entspricht das Ergebnis dem Festlegen der CSS-Eigenschaftwidth, allerdings mit einigen Besonderheiten. Die Einheit des Werts hängt vom Eingabetyp ab. Beipasswordundtexthandelt es sich um eine Anzahl von Zeichen (oderem-Einheiten) mit dem Standardwert20, bei den anderen um Pixel (oderpx-Einheiten). CSS-widthhat Vorrang vor dem Attributsize. src-
Gilt nur für die Eingabeschaltfläche vom Typ
image.srcist eine Zeichenfolge mit der URL der Bilddatei, die als grafische Schaltfläche zum Übermitteln angezeigt wird. Siehe den Eingabetyp image. step-
Das Attribut
stepgilt fürdate,month,week,time,datetime-local,numberundrange. Es ist eine Zahl, die die Schrittweite festlegt, der der Wert entsprechen muss. Gültig sind nur Werte, die um eine ganze Anzahl von Schritten vom Ausgangswert entfernt sind. Der Ausgangswert istmin, falls angegeben, andernfallsvalue, oder0, wenn beides fehlt. Eine Ausnahme istweek: Hier beträgt der standardmäßige Ausgangswert −259.200.000 und stellt den Beginn der Woche1970-W01dar.Wird
stepnicht ausdrücklich angegeben:- Für
numberundrangeist der Standardwert vonstep1. - Jeder Datums- und Uhrzeiteingabetyp hat einen geeigneten Standardwert für
step. Siehe die Seiten der einzelnen Eingabetypen:date,datetime-local,month,timeundweek.
Der Wert muss eine positive Zahl – ganzzahlig oder mit Nachkommastellen – oder der Sonderwert
anysein.anybedeutet, dass keine Schrittweite vorgegeben wird und jeder Wert erlaubt ist, sofern keine anderen Einschränkungen wieminundmaxentgegenstehen.Bei
<input type="number" min="10" step="2">ist beispielsweise jede gerade ganze Zahl ab10gültig. Wirdstepweggelassen, wie bei<input type="number">, ist jede ganze Zahl gültig, Zahlen mit Nachkommastellen wie4.2dagegen nicht, dastepstandardmäßig1ist. Damit4.2gültig ist, müsstestepaufany, 0.1 oder 0.2 gesetzt werden. Alternativ müsste der Wert vonminauf.2enden, etwa bei<input type="number" min="-5.2">.Hinweis: Entsprechen die von Benutzern eingegebenen Daten nicht der festgelegten Schrittweite, gelten sie bei der Constraint Validation als ungültig und entsprechen der Pseudoklasse
:invalid.Weitere Informationen finden Sie unter Clientseitige Validierung.
- Für
switch-
switchgilt nur für Eingabefelder vom Typcheckboxund ist ein boolesches Attribut, das angibt, ob das Kontrollkästchen als Schalter dargestellt werden soll.Hinweis: Dieses Attribut ist noch experimentell und wird nur von wenigen Browsern unterstützt. Nicht unterstützende Browser ignorieren es.
tabindex-
Ein globales, für alle Elemente einschließlich aller Eingabetypen gültiges Attribut mit einem ganzzahligen Wert. Es gibt an, ob das Element den Eingabefokus erhalten kann und ob es an der sequenziellen Tastaturnavigation teilnehmen soll. Da alle Eingabetypen außer
hiddenfokussierbar sind, sollte dieses Attribut nicht für Formularsteuerelemente verwendet werden. Andernfalls müsste die Fokusreihenfolge aller Elemente im Dokument verwaltet werden. Bei Fehlern kann dies die Benutzerfreundlichkeit und Barrierefreiheit beeinträchtigen. title-
Ein globales, für alle Elemente einschließlich aller Eingabetypen gültiges Attribut. Es enthält einen Text mit ergänzenden Informationen zum jeweiligen Element. Diese Informationen können Benutzern üblicherweise, aber nicht zwingend, als Tooltip angezeigt werden.
titlesollte NICHT als wichtigste Erklärung für den Zweck eines Formularsteuerelements verwendet werden. Nutzen Sie stattdessen das Element<label>mit einemfor-Attribut, dessen Wert demid-Attribut des Formularsteuerelements entspricht. Siehe Beschriftungen weiter unten. type-
Eine Zeichenfolge, die den darzustellenden Steuerelementtyp festlegt. Um beispielsweise ein Kontrollkästchen zu erstellen, wird der Wert
checkboxverwendet. Fehlt das Attribut oder ist sein Wert unbekannt, wird der Eingabetyptextverwendet und ein einfaches Texteingabefeld erstellt.Zulässige Werte sind oben unter Eingabetypen aufgeführt.
value-
Der Wert des Eingabesteuerelements. Wird er im HTML angegeben, ist er der Anfangswert. Anschließend kann er jederzeit mit JavaScript über die Eigenschaft
valuedes entsprechendenHTMLInputElement-Objekts geändert oder abgerufen werden. Das Attributvalueist immer optional, sollte fürcheckbox,radioundhiddenjedoch als erforderlich betrachtet werden. webkitdirectory-
Ist das boolesche Attribut
webkitdirectoryvorhanden, stehen Benutzern in der Dateiauswahl nur Verzeichnisse zur Auswahl. Weitere Einzelheiten und Beispiele finden Sie unterHTMLInputElement.webkitdirectory.Hinweis:
webkitdirectoryist in der File and Directory Entries API definiert. Der Namewebkitdirectorystammt daher, dass es ursprünglich eine Chrome-spezifische API war. Inzwischen ist sie in allen Browsern verfügbar. width-
Gilt nur für die Eingabeschaltfläche vom Typ
image.widthgibt die Breite der Bilddatei an, die als grafische Schaltfläche zum Übermitteln angezeigt wird. Siehe den Eingabetyp image.
Nicht standardisierte Attribute
Die folgenden nicht standardisierten Attribute sind ebenfalls in einigen Browsern verfügbar. Grundsätzlich sollten Sie ihre Verwendung nach Möglichkeit vermeiden.
| Attribut | Beschreibung |
|---|---|
incremental |
Gibt an, ob wiederholt search-Ereignisse gesendet werden, damit Suchergebnisse bereits aktualisiert werden können, während Benutzer den Feldwert noch bearbeiten.
Nur WebKit und Blink (Safari, Chrome, Opera usw.).
|
mozactionhint |
Eine Zeichenfolge, die angibt, welche Aktion ausgeführt wird, wenn Benutzer
beim Bearbeiten des Felds die Taste Enter oder Return
drücken. Sie dient dazu, eine geeignete Beschriftung für diese Taste auf
einer Bildschirmtastatur zu bestimmen. Da dieses Attribut veraltet ist,
verwenden Sie stattdessen |
orient |
Legt die Ausrichtung des Schiebereglers fest. Nur Firefox. |
results |
Die Höchstzahl der Einträge, die in der Dropdown-Liste früherer Suchanfragen angezeigt werden sollen. Nur Safari. |
incremental-
Das boolesche Attribut
incrementalist eine Erweiterung von WebKit und Blink, die unter anderem von Safari, Opera und Chrome unterstützt wird. Ist es vorhanden, weist es den User-Agent an, das Eingabefeld als Live-Suche zu behandeln. Während Benutzer den Feldwert bearbeiten, sendet der User-Agentsearch-Ereignisse an dasHTMLInputElement-Objekt, das das Suchfeld repräsentiert. So kann Ihr Code die Suchergebnisse während der Eingabe in Echtzeit aktualisieren.Ist
incrementalnicht angegeben, wird das Ereignissearchnur gesendet, wenn Benutzer ausdrücklich eine Suche starten, etwa indem sie beim Bearbeiten des Felds Enter oder Return drücken.Die Häufigkeit des
search-Ereignisses ist begrenzt: Es wird nicht öfter als in einem von der Implementierung festgelegten Zeitabstand gesendet. orient-
Ähnlich wie die nicht standardisierte CSS-Eigenschaft -moz-orient, die sich auf die Elemente
<progress>und<meter>auswirkt, legt das Attributorientdie Ausrichtung eines Schiebereglers fest. Zu den Werten gehörenhorizontalfür eine waagerechte undverticalfür eine senkrechte Darstellung. Einen modernen Ansatz für vertikale Formularsteuerelemente finden Sie unter Vertikale Formularsteuerelemente erstellen. results-
Das nur von Safari unterstützte Attribut
resultsist ein Zahlenwert, mit dem Sie die Höchstzahl der Einträge im browserseitig bereitgestellten Dropdown-Menü früherer Suchanfragen eines<input>-Elements überschreiben können.Der Wert muss eine nicht negative Dezimalzahl sein. Ist er nicht angegeben oder ungültig, verwendet der Browser seine standardmäßige Höchstzahl an Einträgen.
Methoden
Die folgenden Methoden werden von der Schnittstelle HTMLInputElement bereitgestellt, die <input>-Elemente im DOM repräsentiert. Ebenfalls verfügbar sind die Methoden der übergeordneten Schnittstellen HTMLElement, Element, Node und EventTarget.
checkValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht. Andernfalls wirdfalsezurückgegeben und am Element eininvalid-Ereignis ausgelöst. reportValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht. Andernfalls wirdfalsezurückgegeben, am Element eininvalid-Ereignis ausgelöst und – sofern das Ereignis nicht abgebrochen wird – das Problem den Benutzern gemeldet. select()-
Wählt den gesamten Inhalt des
<input>-Elements aus, sofern dessen Inhalt auswählbar ist. Bei Elementen ohne auswählbaren Textinhalt, etwa einer grafischen Farbauswahl oder einer Kalenderauswahl für ein Datum, bewirkt diese Methode nichts. setCustomValidity()-
Legt eine benutzerdefinierte Meldung fest, die angezeigt wird, wenn der Wert des Eingabeelements ungültig ist.
setRangeText()-
Ersetzt den Inhalt eines angegebenen Zeichenbereichs im Eingabeelement durch eine Zeichenfolge. Mit dem Parameter
selectModelässt sich steuern, wie sich dies auf den vorhandenen Inhalt auswirkt. setSelectionRange()-
Wählt einen angegebenen Zeichenbereich innerhalb eines Texteingabeelements aus. Bei Eingabefeldern, die nicht als Textfelder dargestellt werden, bewirkt die Methode nichts.
showPicker()-
Zeigt die Browser-Auswahloberfläche für das Eingabeelement an. Normalerweise erscheint sie, wenn das Element ausgewählt wird; mit dieser Methode kann sie durch einen Schaltflächenklick oder eine andere Benutzerinteraktion geöffnet werden.
stepDown()-
Verringert den Wert eines numerischen Eingabefelds standardmäßig um eine Einheit oder um die angegebene Anzahl von Einheiten.
stepUp()-
Erhöht den Wert eines numerischen Eingabefelds um eine Einheit oder um die angegebene Anzahl von Einheiten.
CSS
Eingabefelder sind ersetzte Elemente und haben daher einige Eigenschaften, die für andere Elemente als Formularelemente nicht gelten. Mit bestimmten CSS-Selektoren lassen sich Formularsteuerelemente anhand ihrer Oberflächeneigenschaften ansprechen; diese Selektoren werden auch UI-Pseudoklassen genannt. Eingabeelemente können außerdem mithilfe von Attributselektoren nach Typ ausgewählt werden. Daneben gibt es einige besonders nützliche Eigenschaften.
UI-Pseudoklassen
| Pseudoklasse | Beschreibung |
|---|---|
:enabled |
Jedes derzeit aktivierte Element, das aktiviert werden oder den Fokus erhalten kann und auch einen deaktivierten Zustand besitzt, in dem es weder aktiviert werden noch den Fokus erhalten kann. |
:disabled |
Jedes derzeit deaktivierte Element, das auch einen aktivierten Zustand besitzt, in dem es aktiviert werden oder den Fokus erhalten könnte. |
:read-only |
Ein Element, das Benutzer nicht bearbeiten können. |
:read-write |
Ein Element, das Benutzer bearbeiten können. |
:placeholder-shown |
Ein Element, das derzeit placeholder-Text anzeigt.
Dazu gehören <input>- und <textarea>-Elemente,
die ein placeholder-Attribut haben,
aber noch keinen Wert.
|
:default |
Formularelemente, die innerhalb einer Gruppe zusammengehöriger Elemente standardmäßig ausgewählt sind. Entspricht Eingabetypen checkbox und radio, die beim Laden oder Darstellen der Seite ausgewählt waren. |
:checked |
Entspricht Eingabetypen checkbox
und radio, die aktuell ausgewählt
sind, sowie einem aktuell ausgewählten <option>
innerhalb eines <select>.
|
:indeterminate |
checkbox-Elemente, deren
indeterminate-Eigenschaft mit JavaScript auf true gesetzt wurde;
radio-Elemente, wenn im Formular
alle gleichnamigen Optionsfelder nicht ausgewählt sind; sowie
<progress>-Elemente in einem unbestimmten Zustand.
|
:valid |
Formularsteuerelemente, für die eine Constraint Validation möglich ist und die derzeit gültig sind. |
:invalid |
Formularsteuerelemente, für die eine Constraint Validation gilt und
die derzeit ungültig sind. Entspricht einem Steuerelement, dessen Wert
die durch Attribute wie required,
pattern,
step und
max festgelegten Anforderungen nicht erfüllt.
|
:in-range |
Ein nicht leeres Eingabefeld, dessen aktueller Wert innerhalb der durch
die Attribute min und
max sowie durch
step festgelegten Grenzen liegt.
|
:out-of-range |
Ein nicht leeres Eingabefeld, dessen aktueller Wert NICHT innerhalb
der durch die Attribute min und
max festgelegten Grenzen liegt oder
die Vorgabe durch step nicht erfüllt.
|
:required |
Ein <input>-, <select>- oder
<textarea>-Element mit dem Attribut
required.
Entspricht nur Elementen, für die eine Eingabe verlangt werden kann.
Bei anderen Elementen führt das Attribut nicht zu einer Übereinstimmung.
|
:optional |
Ein <input>-, <select>- oder
<textarea>-Element ohne das Attribut
required.
Entspricht nicht Elementen, für die keine Eingabe verlangt werden kann.
|
:blank |
<input>- und <textarea>-Elemente,
die derzeit keinen Wert haben.
|
:user-invalid |
Ähnlich wie :invalid, wird aber beim Verlassen des
Elements aktiviert. Entspricht einer ungültigen Eingabe erst nach einer
Benutzerinteraktion, etwa wenn das Steuerelement fokussiert und wieder
verlassen wurde oder versucht wurde, das Formular mit dem ungültigen
Steuerelement zu übermitteln.
|
:open |
<input>-Elemente, die eine Auswahloberfläche anzeigen,
über die Benutzer einen Wert auswählen können, beispielsweise
<input type="color">.
Die Pseudoklasse gilt nur, während das Element geöffnet ist, also
während die Auswahloberfläche angezeigt wird.
|
Beispiel für Pseudoklassen
Die Beschriftung eines Kontrollkästchens kann unterschiedlich gestaltet werden, je nachdem, ob das Kontrollkästchen ausgewählt ist. In diesem Beispiel gestalten wir color und font-weight des <label>, das unmittelbar auf ein ausgewähltes Eingabefeld folgt. Wenn input nicht ausgewählt ist, wenden wir keine Stile an.
input:checked + label {
color: red;
font-weight: bold;
}
Attributselektoren
Mit Attributselektoren können verschiedene Arten von Formularsteuerelementen anhand ihres type ausgewählt werden. CSS-Attributselektoren stimmen mit Elementen überein, wenn ein Attribut vorhanden ist oder einen bestimmten Wert hat.
/* 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 wird Platzhaltertext durchscheinend oder hellgrau dargestellt. Das Pseudoelement ::placeholder steht für den placeholder-Text eines Eingabefelds. Es kann mit einer begrenzten Auswahl an CSS-Eigenschaften gestaltet werden.
::placeholder {
color: blue;
}
In einer Regel mit ::placeholder im Selektor können nur die CSS-Eigenschaften verwendet werden, die auch für das Pseudoelement ::first-line gelten.
caret-color
Die CSS-Eigenschaft caret-color ist besonders für Elemente zur Texteingabe relevant. Mit ihr können Sie die Farbe der Einfügemarke festlegen:
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
Mit der Eigenschaft field-sizing können Sie steuern, wie die Größe von Formulareingabefeldern bestimmt wird. Standardmäßig erhalten sie eine bevorzugte Größe. Mit dieser Eigenschaft können Sie dieses Verhalten überschreiben, sodass Formularsteuerelemente ihre Größe an ihren Inhalt anpassen.
Die Eigenschaft wird typischerweise verwendet, um Formularfelder zu erstellen, die eng am Inhalt anliegen und mit zunehmender Texteingabe wachsen. Das funktioniert mit Eingabetypen, die eine direkte Texteingabe erlauben, beispielsweise text und url, mit dem Eingabetyp file sowie mit <textarea>-Elementen.
object-position und object-fit
In bestimmten Fällen – üblicherweise bei nicht textbasierten Eingaben und spezialisierten Oberflächen – ist das <input>-Element ein ersetztes Element. Dann können seine Positionierung und Größe innerhalb seines Rahmens mit den CSS-Eigenschaften object-position und object-fit angepasst werden.
Gestaltung
Weitere Informationen zum Hinzufügen von Farbe zu HTML-Elementen finden Sie unter:
Siehe auch:
Weitere Funktionen
>Beschriftungen
Beschriftungen sind erforderlich, um ein <input> mit einem erklärenden Text zu verknüpfen. Das Element <label> stellt Informationen zu einem Formularfeld bereit und ist dafür immer geeignet, sofern keine besonderen Layoutanforderungen entgegenstehen. Ein <label> zu verwenden, um zu erklären, was in ein <input> oder <textarea> eingegeben werden soll, ist stets sinnvoll.
Zugeordnete Beschriftungen
Die semantische Verknüpfung von <input>- und <label>-Elementen ist für assistive Technologien wie Screenreader hilfreich. Wenn Sie die beiden Elemente über das Attribut for von <label> verknüpfen, können Screenreader den Benutzern die Eingabefelder genauer beschreiben.
Ein einfacher Text neben dem <input>-Element reicht nicht aus. Für Benutzerfreundlichkeit und Barrierefreiheit ist vielmehr ein implizites oder explizites <label> erforderlich:
<!-- 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: Zwischen der Aufforderung und dem <input>-Element besteht keine Verknüpfung.
Neben einem zugänglichen Namen bietet die Beschriftung auch eine größere anklickbare beziehungsweise berührbare Fläche für Benutzer von Maus und Touchscreen. Sind ein <label> und ein <input> verknüpft, erhält das <input> den Fokus, wenn eines der beiden angeklickt wird. Wenn Sie das Eingabefeld lediglich mit einfachem Text „beschriften“, geschieht dies nicht. Dass die Aufforderung zum Aktivierungsbereich des Eingabefelds gehört, hilft insbesondere Menschen mit motorischen Einschränkungen.
Als Webentwickler sollten wir niemals davon ausgehen, dass andere Menschen alles wissen, was wir wissen. Die Vielfalt der Menschen, die das Web und damit auch Ihre Website nutzen, bedeutet praktisch zwangsläufig, dass manche Besucher Ihre Formulare aufgrund anderer Denkweisen oder Umstände ganz anders verstehen als Sie – sofern eindeutige und gut präsentierte Beschriftungen fehlen.
Platzhalter sind nicht barrierefrei
Mit dem Attribut placeholder können Sie Text festlegen, der im Inhaltsbereich eines leeren <input>-Elements angezeigt wird. Das Verständnis Ihrer Formulare darf niemals vom Platzhalter abhängen. Er ist keine Beschriftung und sollte auch nicht als Ersatz dafür verwendet werden. Ein Platzhalter soll lediglich darauf hinweisen, wie ein eingegebener Wert aussehen könnte, nicht das Feld erklären oder zur Eingabe auffordern.
Platzhalter sind nicht nur für Screenreader unzugänglich: Sobald Benutzer Text in das Formularsteuerelement eingeben oder bereits ein Wert vorhanden ist, verschwindet der Platzhalter. Browser mit automatischer Seitenübersetzung überspringen bei der Übersetzung möglicherweise Attribute, sodass der placeholder unter Umständen nicht übersetzt wird.
Hinweis:
Vermeiden Sie das Attribut placeholder nach Möglichkeit. Wenn Sie ein <input>-Element beschriften müssen, verwenden Sie das Element <label>.
Clientseitige Validierung
Warnung:
Clientseitige Validierung ist nützlich, garantiert aber nicht, dass der Server gültige Daten erhält. Wenn Daten ein bestimmtes Format haben müssen, überprüfen Sie sie immer auch auf dem Server und geben Sie bei einem ungültigen Format eine HTTP-Antwort mit Status 400 zurück.
Wie oben im Abschnitt UI-Pseudoklassen beschrieben, können Sie Eingabefelder mit CSS anhand ihres aktuellen Zustands über :valid oder :invalid gestalten. Darüber hinaus validiert der Browser Formulareingaben clientseitig, wenn versucht wird, ein Formular zu übermitteln. Besteht ein Formularsteuerelement die Constraint Validation nicht, zeigen unterstützende Browser beim ersten ungültigen Steuerelement eine Fehlermeldung an. Dabei wird entweder eine Standardmeldung für die Fehlerart oder eine von Ihnen festgelegte Meldung angezeigt.
Einige Eingabetypen und Attribute schränken die gültigen Werte eines Eingabefelds ein. Beispielsweise erlaubt <input type="number" min="2" max="10" step="2"> nur die Zahlen 2, 4, 6, 8 und 10. Es können verschiedene Fehler auftreten: rangeUnderflow, wenn der Wert kleiner als 2 ist; rangeOverflow, wenn er größer als 10 ist; stepMismatch, wenn er zwar zwischen 2 und 10 liegt, aber keine gerade ganze Zahl ist und somit die Anforderungen des Attributs step nicht erfüllt; oder typeMismatch, wenn der Wert keine Zahl ist.
Bei Eingabetypen mit einem periodischen Wertebereich – deren Werte nach dem höchsten möglichen Wert wieder am Anfang beginnen, statt dort zu enden – können die Werte der Eigenschaften max und min vertauscht sein. Das bedeutet, dass der zulässige Bereich bei min beginnt, über den höchsten Wert hinaus beim niedrigsten möglichen Wert fortgesetzt wird und bei max endet. Dies ist besonders bei Datums- und Uhrzeitangaben nützlich, etwa wenn Sie einen Zeitraum von 20 Uhr bis 8 Uhr zulassen möchten:
<input type="time" min="20:00" max="08:00" name="overnight" />
Bestimmte Attribute und ihre Werte können zu einem bestimmten Fehler im ValidityState führen:
| Attribut | Zugehörige Eigenschaft | Beschreibung |
|---|---|---|
max |
[`validityState.rangeOverflow`](/de/docs/Web/API/ValidityState/rangeOverflow) |
Tritt auf, wenn der Wert größer als der durch das Attribut max
festgelegte Höchstwert ist.
|
maxlength |
[`validityState.tooLong`](/de/docs/Web/API/ValidityState/tooLong) |
Tritt auf, wenn die Zeichenanzahl größer ist, als die Eigenschaft
maxlength erlaubt.
|
min |
[`validityState.rangeUnderflow`](/de/docs/Web/API/ValidityState/rangeUnderflow) |
Tritt auf, wenn der Wert kleiner als der durch das Attribut min
festgelegte Mindestwert ist.
|
minlength |
[`validityState.tooShort`](/de/docs/Web/API/ValidityState/tooShort) |
Tritt auf, wenn die Zeichenanzahl kleiner ist, als die Eigenschaft
minlength verlangt.
|
pattern |
[`validityState.patternMismatch`](/de/docs/Web/API/ValidityState/patternMismatch) |
Tritt auf, wenn das Attribut pattern einen gültigen regulären
Ausdruck enthält und value ihm nicht entspricht.
|
required |
[`validityState.valueMissing`](/de/docs/Web/API/ValidityState/valueMissing) |
Tritt auf, wenn das Attribut required vorhanden ist, der
Wert aber null ist oder ein Optionsfeld beziehungsweise
Kontrollkästchen nicht ausgewählt wurde.
|
step |
[`validityState.stepMismatch`](/de/docs/Web/API/ValidityState/stepMismatch) |
Der Wert entspricht nicht der festgelegten Schrittweite. Die
Standardschrittweite ist 1. Fehlt step, sind
bei type="number" daher nur ganze Zahlen gültig.
step="any" löst diesen Fehler niemals aus.
|
type |
[`validityState.typeMismatch`](/de/docs/Web/API/ValidityState/typeMismatch) |
Tritt auf, wenn der Wert nicht den richtigen Typ hat, beispielsweise
wenn eine E-Mail-Adresse kein @ oder eine URL kein Protokoll enthält.
|
Wenn ein Formularsteuerelement kein Attribut required hat, ist ein fehlender Wert beziehungsweise eine leere Zeichenfolge nicht ungültig. Mit Ausnahme von required führt eine leere Zeichenfolge auch dann nicht zu einem Fehler, wenn die oben genannten Attribute vorhanden sind.
Wir können die zulässigen Werte begrenzen. Unterstützende Browser validieren diese Formularwerte dann selbst und informieren Benutzer bei der Übermittlung über Fehler.
Zusätzlich zu den in der Tabelle beschriebenen Fehlern enthält die Schnittstelle validityState die schreibgeschützten booleschen Eigenschaften badInput, valid und customError. Das Validitätsobjekt umfasst:
validityState.valueMissingvalidityState.typeMismatchvalidityState.patternMismatchvalidityState.tooLongvalidityState.tooShortvalidityState.rangeUnderflowvalidityState.rangeOverflowvalidityState.stepMismatchvalidityState.badInputvalidityState.validvalidityState.customError
Bei jeder dieser booleschen Eigenschaften zeigt true an, dass der jeweilige Grund für eine fehlgeschlagene Validierung vorliegt. Eine Ausnahme ist die Eigenschaft valid: Sie ist true, wenn der Wert des Elements alle Anforderungen erfüllt.
Liegt ein Fehler vor, informieren unterstützende Browser die Benutzer und verhindern die Formularübermittlung. Beachten Sie: Ist eine benutzerdefinierte Fehlermeldung auf einen Truthy-Wert gesetzt – also auf etwas anderes als eine leere Zeichenfolge oder null –, wird die Formularübermittlung verhindert. Gibt es keine benutzerdefinierte Fehlermeldung und ist keine der anderen Fehlereigenschaften true, 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 Validierungsmeldung auf eine leere Zeichenfolge setzt, ist entscheidend. Macht ein Benutzer einen Fehler und wird eine Validierungsmeldung gesetzt, kann das Formular trotz später gültiger Werte erst wieder übermittelt werden, wenn die Meldung null ist.
Beispiel für eine benutzerdefinierte Validierungsfehlermeldung
Wenn Sie bei einer fehlgeschlagenen Validierung eine eigene Fehlermeldung anzeigen möchten, müssen Sie die Constraint Validation API verwenden, die für <input>-Elemente 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-Funktionen zur Formularvalidierung zeigen hier eine Standardfehlermeldung an, wenn Sie versuchen, das Formular ohne einen gültigen Wert oder mit einem Wert zu übermitteln, der nicht dem pattern entspricht.
Wenn Sie stattdessen eigene Fehlermeldungen anzeigen möchten, können Sie JavaScript wie im folgenden Beispiel 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 folgendermaßen dargestellt:
Kurz zusammengefasst:
- Jedes Mal, wenn sich der Wert des Eingabeelements ändert, prüfen wir seine Gültigkeit, indem wir im Handler des
input-Ereignisses die MethodecheckValidity()ausführen. - Ist der Wert ungültig, wird ein
invalid-Ereignis ausgelöst und dessen Handler ausgeführt. Dort bestimmen wir mit einemif ()-Block, ob der Wert wegen eines leeren Felds oder wegen einer Abweichung vom Muster ungültig ist, und legen eine benutzerdefinierte Validierungsfehlermeldung fest. - Ist der Eingabewert beim Drücken der Schaltfläche zum Übermitteln ungültig, wird daraufhin eine der benutzerdefinierten Fehlermeldungen angezeigt.
- Ist er gültig, wird das Formular wie erwartet übermittelt. Dazu muss die benutzerdefinierte Validierungsfehlermeldung zurückgesetzt werden, indem
setCustomValidity()mit einer leeren Zeichenfolge aufgerufen wird. Deshalb tun wir dies bei jedeminput-Ereignis. Andernfalls würde ein Eingabefeld mit einer zuvor festgelegten Fehlermeldung auch dann noch als ungültig gelten, wenn es bei der Übermittlung inzwischen einen gültigen Wert enthält.
Hinweis: Validieren Sie Eingabeanforderungen immer sowohl auf Client- als auch auf Serverseite. Die Constraint Validation ersetzt die Validierung auf dem Server nicht. Ältere Browser oder böswillige Akteure können weiterhin ungültige Werte senden.
Hinweis:
Firefox unterstützte über viele Versionen hinweg das proprietäre Fehlerattribut x-moz-errormessage, mit dem sich auf ähnliche Weise eigene Fehlermeldungen festlegen ließen. Es wurde mit Version 66 entfernt (siehe Firefox-Bug 1513890).
Lokalisierung
Welche Eingaben für bestimmte <input>-Typen zulässig sind, hängt von der Locale ab. In manchen Locales ist 1,000.00 eine gültige Zahl, während dieselbe Zahl in anderen als 1.000,00 eingegeben werden muss.
Firefox verwendet die folgenden Heuristiken, um die Locale für die Validierung der Benutzereingabe zu bestimmen (zumindest bei type="number"):
- Zunächst wird die Sprache aus einem
lang-/xml:lang-Attribut des Elements oder eines seiner übergeordneten Elemente verwendet. - Dann wird die Sprache aus einem etwaigen
Content-Language-HTTP-Header verwendet. - Ist keine Sprache angegeben, wird die Locale des Browsers verwendet.
Barrierefreiheit
>Beschriftungen
Wenn Sie Eingabefelder einbinden, müssen Sie für die Barrierefreiheit auch Beschriftungen hinzufügen. Nur so können Menschen, die assistive Technologien verwenden, den Zweck eines Eingabefelds erkennen. Zudem erhält das zugehörige Formularsteuerelement den Fokus, wenn seine Beschriftung angeklickt oder berührt wird. Das verbessert auch für sehende Benutzer die Zugänglichkeit und Bedienbarkeit, weil die anklickbare beziehungsweise berührbare Fläche zum Aktivieren des Steuerelements größer wird. Besonders bei kleinen Optionsfeldern und Kontrollkästchen ist das hilfreich oder sogar notwendig. Allgemeine Informationen finden Sie unter Beschriftungen.
Das folgende Beispiel zeigt, wie Sie ein <label> wie oben beschrieben mit einem <input>-Element verknüpfen. Dazu benötigt das <input> ein Attribut id. Das <label> benötigt ein Attribut for mit demselben Wert wie die id des Eingabefelds.
<label for="peas">Do you like peas?</label>
<input type="checkbox" name="peas" id="peas" />
Größe
Interaktive Elemente wie Formulareingabefelder sollten eine ausreichend große Fläche bieten, damit sie sich leicht aktivieren lassen. Das hilft unter anderem Menschen mit motorischen Einschränkungen und Personen, die weniger präzise Eingabemethoden wie einen Eingabestift oder ihre Finger verwenden. Empfohlen wird eine interaktive Mindestgröße von 44 × 44 CSS-Pixeln.
Technische Zusammenfassung
| Inhaltskategorien |
Flussinhalt;
auflistbares, übermittelbares, zurücksetzbares und formularzugeordnetes Element;
Phrasing-Inhalt.
Wenn type nicht hidden ist,
außerdem beschriftbares Element und wahrnehmbarer Inhalt.
|
|---|---|
| Erlaubter Inhalt | Keiner; es ist ein leeres Element. |
| Auslassen von Tags | Ein Start-Tag ist erforderlich; ein End-Tag darf nicht vorhanden sein. |
| Erlaubte Elternelemente | Jedes Element, das Phrasing-Inhalt akzeptiert. |
| Implizite ARIA-Rolle |
|
| Erlaubte ARIA-Rollen |
|
| DOM-Schnittstelle | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
Spezifikationen
| Spezifikation |
|---|
| HTML> # the-input-element> |