Das HTML-Element <input>
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 <input>-Element von HTML dient dazu, interaktive Steuerelemente für webbasierte Formulare zu erstellen, mit denen Daten von Benutzern entgegengenommen werden. Je nach Gerät und User Agent stehen zahlreiche Arten von Eingabedaten und Steuerelementen zur Verfügung. Wegen der vielen möglichen Kombinationen von Eingabetypen und Attributen ist <input> eines der leistungsfähigsten und komplexesten Elemente 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 Attributs value 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 einen Farbwähler. |
|
| date | Ein Steuerelement zur Eingabe eines Datums (Jahr, Monat und Tag, ohne Uhrzeit). In unterstützenden Browsern öffnet es bei Aktivierung einen Datumswähler oder numerische Auswahlrä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 einen Datumswähler oder numerische Auswahlräder für Datums- und Uhrzeitbestandteile. |
|
Ein Feld zur Eingabe einer E-Mail-Adresse. Es sieht wie ein
text-Eingabefeld aus, bietet aber Validierungsregeln und
auf unterstützenden Geräten eine passende dynamische Tastatur.
|
|
|
| file |
Ein Steuerelement, mit dem Benutzer eine Datei auswählen können.
Mit dem Attribut accept legen Sie fest, welche Dateitypen ausgewählt werden können.
|
|
| hidden | Ein Steuerelement, das nicht angezeigt wird, dessen Wert aber an den Server gesendet 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 das Bild unter src fehlt.
|
|
| month | Ein Steuerelement zur Eingabe von Monat und Jahr ohne Zeitzone. |
|
| number | Ein Steuerelement zur Eingabe einer Zahl. Es zeigt Bedienelemente zum schrittweisen Ändern des Werts an und bietet eine Standardvalidierung. Auf manchen 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 aus mehreren Optionen mit demselben name-Wert genau eine ausgewählt werden kann.
|
|
| range |
Ein Steuerelement zur Eingabe einer Zahl, deren genauer Wert nicht wichtig ist.
Es wird als Schieberegler dargestellt, dessen Standardwert in der Mitte liegt.
Zusammen mit min und max wird der zulässige Wertebereich festgelegt.
|
|
| reset | Eine Schaltfläche, die den Formularinhalt auf die Standardwerte zurücksetzt. Ihre Verwendung wird nicht empfohlen. |
|
| search | Ein einzeiliges Textfeld zur Eingabe von Suchbegriffen. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. Unterstützende Browser können ein Symbol zum Leeren des Felds anzeigen. Auf manchen Geräten mit dynamischer Tastatur erscheint statt der Eingabetaste ein Suchsymbol. |
|
| submit | Eine Schaltfläche, die das Formular absendet. |
|
| tel | Ein Steuerelement zur Eingabe einer Telefonnummer. Auf manchen 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, bietet aber Validierungsregeln und auf unterstützenden Geräten
eine passende dynamische Tastatur.
|
|
| week | Ein Steuerelement zur Eingabe eines Datums aus Wochenjahr und Wochennummer, ohne Zeitzone. |
|
| 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 ist das oben anhand von Beispielen beschriebene Attribut type. Da jedes <input>-Element unabhängig von seinem Typ auf der Schnittstelle HTMLInputElement basiert, besitzen technisch gesehen alle dieselben Attribute. Tatsächlich wirken sich die meisten Attribute jedoch nur auf bestimmte Eingabetypen aus. Zudem hängt die Wirkung mancher Attribute vom jeweiligen Eingabetyp ab.
Dieser Abschnitt enthält zunächst eine Tabelle aller Attribute mit kurzen Beschreibungen. Anschließend werden die Attribute und die Eingabetypen, für die sie gelten, genauer erläutert. Attribute, die für die meisten oder alle Eingabetypen gelten, werden weiter unten ausführlicher beschrieben. Attribute, die nur für bestimmte Eingabetypen gelten oder bei einem bestimmten Typ ein besonderes Verhalten haben, sind dagegen auf den Referenzseiten dieser Typen dokumentiert.
Zu den Attributen des <input>-Elements gehören die globalen HTML-Attribute sowie die folgenden:
| Attribut | Typ(en) | Beschreibung |
|---|---|---|
accept |
file |
Hinweis auf erwartete Dateitypen bei Steuerelementen zum Hochladen von Dateien |
alpha |
color |
Deckkraft der Farbe |
alt |
image |
alt-Attribut 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 die automatische Formularvervollständigung |
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 übermittelt wird |
disabled |
alle | Gibt an, ob das Formularsteuerelement deaktiviert ist |
form |
alle | Ordnet das Steuerelement einem Formularelement zu |
formaction |
image, submit |
URL für die Formularübermittlung |
formenctype |
image, submit |
Kodierungstyp der bei der Formularübermittlung verwendeten Formulardaten |
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 von <img>; vertikale Abmessung |
list |
alle außer hidden, password, checkbox, radio und Schaltflächen |
Wert des Attributs id des <datalist>-Elements mit Vervollständigungsvorschlägen |
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 |
Minimale Länge (Anzahl der Zeichen) von value |
multiple |
email, file |
Boolesches Attribut; gibt an, ob mehrere Werte zulässig 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 fest, welche Aktion 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; für das Absenden 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 von <img>; Adresse der Bildressource |
step |
date, month, week, time, datetime-local, number, range |
Zulässige Wertschritte |
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 von <img> |
Nach den Beschreibungen der standardisierten Attribute werden einige zusätzliche, 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 einen Alternativtext für das Bild bereit, der angezeigt wird, wenn die Bilddatei untersrcfehlt oder nicht geladen werden kann. Siehe den Eingabetyp image. autocapitalize-
Steuert, ob und auf welche Weise eingegebener Text automatisch großgeschrieben wird. Weitere Informationen finden Sie auf der Seite zum globalen Attribut
autocapitalize. autocomplete-
(Kein boolesches Attribut!) Das Attribut
autocompleteerwartet eine durch Leerzeichen getrennte Zeichenfolge, die beschreibt, welche Art der automatischen Vervollständigung das Eingabefeld gegebenenfalls bieten soll. Typischerweise werden dafür zuvor in dasselbe Feld eingegebene Werte wiederverwendet; es sind aber auch komplexere Formen möglich. Beispielsweise könnte ein Browser die Kontaktliste eines Geräts verwenden, 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 hat keine Wirkung bei Eingabetypen, die weder numerische Daten noch Text zurückgeben. Es gilt für alle Eingabetypen außercheckbox,radio,fileund den Schaltflächentypen.Weitere Informationen, unter anderem zur Sicherheit von Passwörtern 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 automatisch den Fokus erhalten soll, sobald die Seite geladen ist oder der
<dialog>, in dem sich das Element befindet, 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. Wenn es mehreren Elementen zugewiesen wird, erhält das erste dieser Elemente den Fokus.Das Attribut
autofocuskann nicht für Eingabefelder vom Typhiddenverwendet werden, da verborgene Eingabefelder keinen Fokus erhalten können.Warnung: Das automatische Fokussieren eines Formularsteuerelements kann Menschen mit Sehbehinderungen, 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
autofocusverwenden. Das automatische Fokussieren eines Steuerelements kann dazu führen, dass die Seite beim Laden scrollt. Auf manchen Touch-Geräten kann dadurch außerdem die Bildschirmtastatur eingeblendet werden. Ein Screenreader liest zwar die Beschriftung des fokussierten Formularsteuerelements vor, kündigt davor aber nichts an. Auch sehenden Benutzern kleiner Geräte kann dadurch der Kontext aus den vorhergehenden Inhalten entgehen. capture-
Das Attribut
capturewurde in der HTML-Media-Capture-Spezifikation eingeführt und gilt nur für den Eingabetypfile. Es legt fest, welches Medium – Mikrofon, Video oder Kamera – in unterstützten Szenarien verwendet werden soll, um eine neue Datei für den Upload über dasfile-Steuerelement aufzunehmen. Siehe den Eingabetyp file. checked-
checkedist ein boolesches Attribut für die Typenradioundcheckbox. Beiradiogibt es an, dass das Optionsfeld innerhalb der Gruppe gleichnamiger Optionsfelder ausgewählt ist. Beicheckboxgibt es an, dass das Kontrollkästchen beim Laden der Seite standardmäßig ausgewählt ist. Es zeigt nicht an, ob das Kontrollkästchen aktuell ausgewählt ist: Ändert sich dessen Zustand, wird diese Änderung nicht im HTML-Attribut widergespiegelt. (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
name-Wertfruitund denvalue-Wertcherryund ist es ausgewählt, enthalten die übermittelten Formulardatenfruit=cherry. Ist es nicht ausgewählt, erscheint es überhaupt nicht in den Formulardaten. Der Standardwert vonvalueist bei Kontrollkästchen und Optionsfeldernon. colorspace-
Das Attribut
colorspacegilt nur für den Eingabetypcolorund legt den Farbraum fest, den das Eingabefeldtype="color"verwendet. Mögliche Aufzählungswerte sind:"limited-srgb": Die Farbe liegt im sRGB-Farbraum. Dazu gehören Werte vonrgb(),hsl(),hwb()und<hex-color>. Der Farbwert ist auf 8 Bit pror-,g- undb-Komponente begrenzt. Dies ist der Standardwert."display-p3": Der Display-P3-Farbraum, beispielsweisecolor(display-p3 1.84 -0.19 0.72 / 0.6).
dirname-
Das Attribut
dirnamegilt für die Eingabetypenhidden,text,search,url,telundemail. Es ermöglicht, die Schreibrichtung des Elements mit dem Formular zu übermitteln. Ist es vorhanden, übermittelt das Formularsteuerelement zwei Name-Wert-Paare: Das erste besteht ausnameundvalue. Beim zweiten ist der Wert des Attributsdirnameder Name und die vom Browser festgelegte Schreibrichtungltroderrtlder 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 Absenden des obigen Formulars werden sowohl das Paar aus
nameundvalue,fruit=cherry, als auch das Paar ausdirnameund Schreibrichtung,fruit-dir=ltr, gesendet. Weitere Informationen finden Sie unter Attributdirname. disabled-
Ein boolesches Attribut, das angibt, dass Benutzer nicht mit dem Eingabefeld interagieren können. Deaktivierte Eingabefelder werden üblicherweise ausgegraut oder auf andere Weise als nicht verfügbar gekennzeichnet.
Deaktivierte Eingabefelder empfangen insbesondere kein
click-Ereignis und werden nicht mit dem Formular übermittelt.Hinweis: Obwohl die Spezifikation dies nicht verlangt, speichert Firefox den dynamisch gesetzten Deaktivierungszustand eines
<input>standardmäßig ü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, also sein übergeordnetes Formular. Ist ein Wert vorhanden, muss er mit derideines<form>-Elements im selben Dokument übereinstimmen. Fehlt das Attribut, ist das<input>-Element gegebenenfalls dem nächstgelegenen umschließenden Formular zugeordnet.Mit dem Attribut
formkönnen Sie ein Eingabefeld an beliebiger Stelle im Dokument platzieren und dennoch einem Formular an anderer Stelle zuordnen.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, die als grafische Schaltfläche zum Absenden angezeigt wird. Siehe den Eingabetyp image. id-
Dieses globale Attribut gilt für alle Elemente einschließlich aller Eingabetypen. Es legt eine Kennung (ID) fest, die im gesamten Dokument eindeutig sein muss. Sie dient dazu, das Element bei Verknüpfungen zu identifizieren. Ihr Wert wird als Wert des Attributs
foreines<label>verwendet, um die Beschriftung mit dem Formularsteuerelement zu verknüpfen. Siehe<label>. inputmode-
Dieses globale Attribut gilt für alle Elemente und gibt Browsern einen Hinweis darauf, welche Bildschirmtastatur beim Bearbeiten des Elements oder seines Inhalts verwendet werden soll. Mögliche Werte sind
none,text,tel,url,email,numeric,decimalundsearch. list-
Der Wert des Attributs
listsollte derideines<datalist>-Elements im selben Dokument entsprechen. Das<datalist>enthält vordefinierte Werte, die Benutzern für dieses Eingabefeld vorgeschlagen werden. Werte, die nicht mit demtypekompatibel sind, erscheinen nicht unter den Vorschlägen. Es handelt sich um Vorschläge, nicht um Vorgaben: Benutzer können einen Wert aus der Liste wählen oder einen anderen eingeben.Das Attribut gilt für
text,search,url,tel,email,date,month,week,time,datetime-local,number,rangeundcolor.Laut Spezifikation wird
listvonhidden,password,checkbox,radio,fileund den Schaltflächentypen nicht unterstützt.Je nach Browser wird möglicherweise eine vorgeschlagene Farbpalette, eine Skala entlang eines Schiebereglers oder ein Eingabefeld angezeigt, das sich wie ein
<select>öffnet, aber auch nicht aufgeführte Werte zulässt. Informationen zu den anderen Eingabetypen finden Sie in der Browser-Kompatibilitätstabelle.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, besteht das Element die Einschränkungsvalidierung nicht. Ist der Wert vonmaxkeine Zahl, hat das Element keinen Höchstwert.Es gibt einen Sonderfall: Bei periodischen Datentypen wie Datums- oder Uhrzeitwerten darf
maxkleiner alsminsein. Das bedeutet, dass der Bereich über seinen Anfang hinausreichen kann. So lässt sich beispielsweise ein Zeitbereich von 22:00 Uhr bis 04:00 Uhr angeben. 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. Fehltmaxlengthoder ist sein Wert ungültig, hat das Feld keine maximale Länge. Der Wert muss außerdem mindestens so groß wieminlengthsein.Überschreitet die Länge des eingegebenen Texts
maxlengthUTF-16-Codeeinheiten, besteht das Eingabefeld die Einschränkungsvalidierung nicht. Standardmäßig verhindern Browser, dass Benutzer mehr Zeichen eingeben, alsmaxlengtherlaubt. Die Einschränkungsvalidierung 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. Liegt der im Element eingegebenevaluedarunter, besteht das Element die Einschränkungsvalidierung nicht. Ist der Wert vonminkeine Zahl, hat das Element keinen Mindestwert.Dieser Wert muss kleiner oder gleich dem Wert von
maxsein. Istminvorhanden, aber ohne Wert oder mit einem ungültigen Wert angegeben, wird kein Mindestwert angewendet. Istmingültig und ein nicht leerer Eingabewert kleiner als der zulässige Mindestwert, verhindert die Einschränkungsvalidierung das Absenden des Formulars. Weitere Informationen finden Sie unter Clientseitige Validierung.Es gibt einen Sonderfall: Bei periodischen Datentypen wie Datums- oder Uhrzeitwerten darf
maxkleiner alsminsein. Das bedeutet, dass der Bereich über seinen Anfang hinausreichen kann. So lässt sich beispielsweise ein Zeitbereich von 22:00 Uhr bis 04:00 Uhr angeben. minlength-
Gilt für
text,search,url,tel,emailundpasswordund legt die minimale Lä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 gleichmaxlengthist. Fehltminlengthoder ist sein Wert ungültig, hat das Eingabefeld keine Mindestlänge.Unterschreitet die Länge des eingegebenen Texts
minlengthUTF-16-Codeeinheiten, besteht das Eingabefeld die Einschränkungsvalidierung nicht und das Formular kann nicht abgesendet werden. Die Einschränkungsvalidierung wird nur angewendet, wenn Benutzer den Wert ändern. Weitere Informationen finden Sie unter Clientseitige Validierung. multiple-
Ist das boolesche Attribut
multiplegesetzt, können Benutzer imemail-Feld mehrere durch Kommas getrennte E-Mail-Adressen eingeben oder imfile-Eingabefeld mehrere Dateien auswählen. Siehe die Eingabetypen email und file. name-
Eine Zeichenfolge, die den Namen des Eingabesteuerelements angibt. Dieser Name wird beim Absenden der Formulardaten zusammen mit dem Wert des Steuerelements übermittelt.
Betrachten Sie
nameals erforderliches Attribut, auch wenn es formal nicht erforderlich ist. Wenn für ein Eingabefeld keinnameangegeben ist odernameleer ist, wird sein Wert nicht mit dem Formular übermittelt. Deaktivierte Steuerelemente, nicht ausgewählte Optionsfelder und Kontrollkästchen sowie Schaltflächen zum Zurücksetzen werden ebenfalls nicht übermittelt.Es gibt zwei Sonderfälle:
_charset_: Wird dieser Wert als Name eines<input>-Elements vom Typ hidden verwendet, setzt der User Agent dessenvalueautomatisch auf die für die Formularübermittlung verwendete Zeichenkodierung.isindex: Aus historischen Gründen ist der Nameisindexnicht zulässig.
Bei Optionsfeldern führt das Attribut
namezu einem besonderen Verhalten.Innerhalb einer Gruppe gleichnamiger Optionsfelder kann jeweils nur eines ausgewählt sein. Wenn Sie ein anderes Optionsfeld derselben Gruppe auswählen, wird das zuvor ausgewählte automatisch abgewählt. Beim Absenden des Formulars wird der Wert des ausgewählten Optionsfelds zusammen mit dem Namen übermittelt.
Wenn Sie mit der Tabulatortaste zu einer Gruppe gleichnamiger Optionsfelder navigieren und eines davon ausgewählt ist, erhält dieses den Fokus. Stehen die Optionsfelder im Quelltext nicht direkt nebeneinander, wird die Gruppe beim ersten Optionsfeld erreicht; nicht ausgewählte Felder werden dabei übersprungen. Ist kein Feld ausgewählt, erhält das erste Optionsfeld der gleichnamigen Gruppe den Fokus.
Sobald eines der Optionsfelder einer Gruppe den Fokus hat, können Sie mit den Pfeiltasten zwischen allen gleichnamigen Optionsfeldern navigieren, auch wenn sie im Quelltext nicht direkt nebeneinanderstehen.
Erhält ein Eingabeelement einen
name, wird dieser Name zu einer Eigenschaft vonHTMLFormElement.elementsdes zugehörigen Formulars. Wenn Sie ein Eingabefeld mitname="guest"und ein weiteres mitname="hat-size"haben, können Sie folgenden Code verwenden:jslet form = document.querySelector("form"); let guestName = form.elements.guest; let hatSize = form.elements["hat-size"];Nach Ausführung dieses Codes enthält
guestNamedasHTMLInputElementfür das FeldguestundhatSizedas Objekt für das Feldhat-size.Warnung: Geben Sie Formularelementen keinen
name, der einer integrierten Eigenschaft des Formulars entspricht. Andernfalls überschreiben Sie die vordefinierte Eigenschaft oder Methode mit einer Referenz auf das entsprechende Eingabefeld. pattern-
Das Attribut
patterngilt fürtext,search,url,tel,emailundpassword. Daraus wird ein regulärer Ausdruck kompiliert, dem dervaluedes Eingabefelds entsprechen muss, um die Einschränkungsvalidierung zu bestehen. Es muss sich um einen gültigen regulären JavaScript-Ausdruck handeln, wie ihn der TypRegExpverwendet und wie er in unserem Leitfaden zu regulären Ausdrücken dokumentiert ist. Setzen Sie keine Schrägstriche um den Mustertext. Beim Kompilieren des regulären Ausdrucks gilt:- Das Muster wird implizit mit
^(?:und)$umschlossen. Dadurch muss der gesamte Eingabewert übereinstimmen, also^(?:<pattern>)$. - Das Flag
'v'wird gesetzt, damit das Muster als Folge von Unicode-Codepunkten statt als ASCII behandelt wird.
Ist
patternvorhanden, aber ohne Wert oder mit einem ungültigen Wert angegeben, wird kein regulärer Ausdruck angewendet und das Attribut vollständig ignoriert. Ist das Muster gültig und ein nicht leerer Wert entspricht ihm nicht, verhindert die Einschränkungsvalidierung das Absenden des Formulars. Istmultiplevorhanden, wird der kompilierte reguläre Ausdruck auf jeden durch Kommas getrennten Wert angewendet.Hinweis: Wenn Sie
patternverwenden, erläutern Sie das erwartete Format in einem Text in der Nähe des Eingabefelds. Sie können zusätzlich ein Attributtitleangeben, das die Anforderungen des Musters beschreibt; die meisten Browser zeigen dessen Wert als Tooltip an. Die sichtbare Erläuterung ist für die Barrierefreiheit erforderlich. Der Tooltip ist lediglich 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 zum erwarteten Datentyp bestehen, nicht aus einer ausführlichen Erklärung oder Aufforderung. Der Text darf keine Wagenrückläufe oder Zeilenumbrüche enthalten. Soll ein Feld beispielsweise den Vornamen erfassen und lautet seine Beschriftung „Vorname“, wäre „z. B. Mustafa“ ein geeigneter Platzhalter.Hinweis: Das Attribut
placeholderist semantisch weniger hilfreich als andere Möglichkeiten, ein Formular zu erläutern, und kann unerwartete technische Probleme verursachen. Weitere Informationen finden Sie unter Beschriftungen. popovertarget-
Macht ein
<input type="button">-Element zu einer Schaltfläche zur Steuerung eines Popovers. Als Wert wird die ID des zu steuernden Popover-Elements angegeben. Weitere Informationen finden Sie auf der Übersichtsseite zur Popover API. Die Verknüpfung eines Popovers mit seiner auslösenden Schaltfläche überpopovertargethat zwei weitere nützliche Auswirkungen:- Der Browser stellt implizit eine Beziehung über
aria-detailsundaria-expandedzwischen Popover und auslösender Schaltfläche her. Wenn das Popover angezeigt wird, ordnet er es außerdem an einer logischen Stelle in der Tastatur-Fokusreihenfolge ein. Das verbessert die Zugänglichkeit für Benutzer von Tastaturen und unterstützenden Technologien (siehe auch Barrierefreiheitsfunktionen von Popovers). - Der Browser erstellt eine implizite Ankerreferenz zwischen beiden Elementen. Dadurch lassen sich Popovers bequem mithilfe der CSS-Ankerpositionierung relativ zu ihren Steuerelementen platzieren. Weitere Informationen finden Sie unter Ankerpositionierung von Popovers.
- Der Browser stellt implizit eine Beziehung über
popovertargetaction-
Legt fest, welche Aktion ein
<input type="button">-Steuerelement für das zugehörige Popover ausführt. Mögliche Werte sind:"hide"-
Die Schaltfläche verbirgt ein sichtbares 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 dem sichtbaren und dem verborgenen Zustand des Popovers. Ist es verborgen, wird es angezeigt; ist es sichtbar, wird es verborgen. Wenn
popovertargetactionfehlt, ist"toggle"die Standardaktion.
readonly-
Ein boolesches Attribut, das angibt, dass Benutzer den Wert des Eingabefelds nicht bearbeiten können.
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. Ist es vorhanden, müssen Benutzer einen Wert für das Eingabefeld angeben, bevor das zugehörige Formular abgesendet werden kann. Unterstützt wird es von Eingabefeldern der Typentext,search,url,tel,email,date,month,week,time,datetime-local,number,password,checkbox,radioundfile.Weitere Informationen finden Sie unter Clientseitige Validierung und HTML-Attribut:
required. size-
Das Attribut
sizegilt füremail,password,tel,urlundtextund legt fest, wie groß das Eingabefeld dargestellt wird. Im Wesentlichen ähnelt das Ergebnis dem Setzen der CSS-Eigenschaftwidth, allerdings gibt es einige Besonderheiten. Die Einheit hängt vom Eingabetyp ab. Beipasswordundtextentspricht der Wert einer Anzahl von Zeichen beziehungsweiseem-Einheiten; der Standardwert ist20. Bei den anderen Typen sind es Pixel beziehungsweisepx-Einheiten. Die CSS-Eigenschaftwidthhat Vorrang vorsize. 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 Absenden angezeigt wird. Siehe den Eingabetyp image. step-
Das Attribut
stepgilt fürdate,month,week,time,datetime-local,numberundrange. Es ist eine Zahl, die die zulässige Schrittweite festlegt. Gültig sind nur Werte, die um eine ganze Anzahl von Schritten vom Ausgangswert entfernt sind. Als Ausgangswert dientmin, falls angegeben, andernfallsvalue, oder0, wenn keines der beiden Attribute vorhanden ist. Eine Ausnahme bildetweek: Hier ist der standardmäßige Ausgangswert −259.200.000, was dem Beginn der Woche1970-W01entspricht.Wird
stepnicht ausdrücklich angegeben:- Für
numberundrangeist der Standardwert vonstep1. - Jeder Datums- und Uhrzeit-Eingabetyp hat einen passenden Standardwert für
step. Siehe die jeweiligen Referenzseiten:date,datetime-local,month,timeundweek.
Der Wert muss eine positive Zahl – ganzzahlig oder als Gleitkommazahl – oder der besondere Wert
anysein.anybedeutet, dass keine Schrittweite vorgegeben ist und jeder Wert zulässig ist, sofern keine anderen Einschränkungen wieminundmaxentgegenstehen.Bei
<input type="number" min="10" step="2">ist beispielsweise jede gerade ganze Zahl ab10gültig. Wirdstepwie bei<input type="number">weggelassen, sind alle ganzen Zahlen gültig, Gleitkommazahlen wie4.2jedoch nicht, dastepstandardmäßig1ist. Damit4.2gültig ist, müsstestepaufany, 0.1 oder 0.2 gesetzt sein, oderminmüsste auf eine Zahl mit der Nachkommastelle.2gesetzt werden, etwa<input type="number" min="-5.2">.Hinweis: Wenn die von Benutzern eingegebenen Daten nicht der festgelegten Schrittweite entsprechen, gilt der Wert bei der Einschränkungsvalidierung als ungültig und entspricht der Pseudoklasse
:invalid.Weitere Informationen finden Sie unter Clientseitige Validierung.
- Für
switch-
Das boolesche Attribut
switchgilt nur fürcheckbox-Eingabefelder und gibt an, 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-
Dieses globale ganzzahlige Attribut gilt für alle Elemente einschließlich aller Eingabetypen. Es gibt an, ob ein Element den Fokus erhalten und an der sequenziellen Tastaturnavigation teilnehmen kann. Da alle Eingabetypen außer
hiddenfokussierbar sind, sollte dieses Attribut nicht für Formularsteuerelemente verwendet werden. Andernfalls müssten Sie die Fokusreihenfolge sämtlicher Elemente im Dokument verwalten und könnten bei Fehlern Bedienbarkeit und Barrierefreiheit beeinträchtigen. title-
Dieses globale Attribut gilt für alle Elemente einschließlich aller Eingabetypen. Es enthält einen Text mit ergänzenden Informationen über das Element. Solche Informationen können Benutzern üblicherweise, aber nicht zwingend, als Tooltip angezeigt werden.
titlesollte NICHT als wichtigste Erklärung für den Zweck eines Formularsteuerelements dienen. Verwenden Sie stattdessen ein<label>-Element, dessen Attributforauf dieiddes Formularsteuerelements gesetzt ist. Siehe Beschriftungen weiter unten. type-
Eine Zeichenfolge, die den darzustellenden Steuerelementtyp angibt. Um beispielsweise ein Kontrollkästchen zu erstellen, verwenden Sie den Wert
checkbox. Fehlt das Attribut oder ist der Wert unbekannt, wirdtextverwendet und ein einfaches Textfeld erstellt.Die zulässigen Werte sind oben unter Eingabetypen aufgeführt.
value-
Der Wert des Eingabesteuerelements. Wird er im HTML angegeben, ist er der Anfangswert. Anschließend lässt er sich jederzeit über die Eigenschaft
valuedes entsprechendenHTMLInputElement-Objekts mit JavaScript ändern oder abrufen. Das Attributvalueist immer optional, sollte beicheckbox,radioundhiddenjedoch als erforderlich betrachtet werden. webkitdirectory-
Das boolesche Attribut
webkitdirectorygibt an, dass Benutzer in der Dateiauswahl nur Verzeichnisse auswählen können. Weitere Einzelheiten und Beispiele finden Sie unterHTMLInputElement.webkitdirectory.Hinweis:
webkitdirectoryist in der File and Directory Entries API definiert. Der Name stammt daher, dass es ursprünglich eine Chrome-spezifische API war. Mittlerweile ist es 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 Absenden 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 sie nur verwenden, wenn es sich nicht vermeiden lässt.
| Attribut | Beschreibung |
|---|---|
incremental |
Gibt an, ob wiederholt search-Ereignisse gesendet werden, damit Suchergebnisse bereits aktualisiert werden können, während Benutzer den Feldwert 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 Enter oder Return drücken.
Daraus wird eine passende Beschriftung für die Taste auf einer
Bildschirmtastatur bestimmt. Da dieses Attribut veraltet ist, verwenden Sie stattdessen |
orient |
Legt die Ausrichtung des Schiebereglers fest. Nur Firefox. |
results |
Die maximale Anzahl von Einträgen, die in der Dropdown-Liste früherer Suchanfragen angezeigt werden sollen. Nur Safari. |
incremental-
Das boolesche Attribut
incrementalist eine Erweiterung von WebKit und Blink und wird daher unter anderem von Safari, Opera und Chrome unterstützt. Ist es vorhanden, weist es den User Agent an, die Eingabe als Live-Suche zu behandeln. Während Benutzer den Feldwert bearbeiten, sendet der User Agentsearch-Ereignisse an dasHTMLInputElement-Objekt des Suchfelds. So kann Ihr Code die Suchergebnisse während der Eingabe in Echtzeit aktualisieren.Fehlt
incremental, wird dassearch-Ereignis nur gesendet, wenn Benutzer ausdrücklich eine Suche starten, beispielsweise 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 des Schiebereglers fest. Mögliche Werte sindhorizontalfür eine waagerechte undverticalfür eine senkrechte Darstellung. Einen modernen Ansatz für senkrechte Formularsteuerelemente finden Sie unter Senkrechte Formularsteuerelemente erstellen. results-
Mit dem nur von Safari unterstützten numerischen Attribut
resultskönnen Sie die maximale Anzahl der Einträge überschreiben, die im browserseitigen Dropdown-Menü des<input>-Elements mit früheren Suchanfragen angezeigt werden.Der Wert muss eine nicht negative Dezimalzahl sein. Fehlt er oder ist er ungültig, verwendet der Browser seine standardmäßige Höchstzahl.
Methoden
Die folgenden Methoden stellt die Schnittstelle HTMLInputElement bereit, die <input>-Elemente im DOM repräsentiert. Zusätzlich sind die Methoden der übergeordneten Schnittstellen HTMLElement, Element, Node und EventTarget verfügbar.
checkValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht. Andernfalls gibt die Methodefalsezurück und löst am Element eininvalid-Ereignis aus. reportValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht. Andernfalls gibt die Methodefalsezurück, löst am Element eininvalid-Ereignis aus und meldet Benutzern das Problem, sofern das Ereignis nicht abgebrochen wird. select()-
Wählt den gesamten Inhalt des
<input>-Elements aus, sofern dessen Inhalt auswählbar ist. Bei Elementen ohne auswählbaren Textinhalt, etwa einem grafischen Farbwähler oder einer Datumsauswahl, hat die Methode keine Wirkung. 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 die bestehende Auswahl auswirkt. setSelectionRange()-
Wählt einen angegebenen Zeichenbereich innerhalb eines Texteingabeelements aus. Bei Eingabefeldern, die nicht als Textfelder dargestellt werden, hat die Methode keine Wirkung.
showPicker()-
Zeigt die browserseitige Auswahloberfläche des Eingabeelements an, die normalerweise bei dessen Auswahl erscheint, hier jedoch durch einen Schaltflächenklick oder eine andere Benutzerinteraktion ausgelöst wird.
stepDown()-
Verringert den Wert eines numerischen Eingabefelds standardmäßig um einen Schritt oder um die angegebene Anzahl von Schritten.
stepUp()-
Erhöht den Wert eines numerischen Eingabefelds um einen Schritt oder um die angegebene Anzahl von Schritten.
CSS
Eingabefelder sind ersetzte Elemente und besitzen daher einige Eigenschaften, die nicht für andere Elemente als Formularelemente gelten. CSS-Selektoren können Formularsteuerelemente anhand von Merkmalen ihrer Benutzeroberfläche gezielt auswählen; diese Selektoren werden auch UI-Pseudoklassen genannt. Eingabeelemente lassen sich außerdem anhand ihres Typs mit Attributselektoren auswählen. Daneben sind einige CSS-Eigenschaften besonders nützlich.
UI-Pseudoklassen
| Pseudoklasse | Beschreibung |
|---|---|
:enabled |
Jedes aktuell aktivierte Element, das benutzt werden kann – etwa durch Auswählen, Anklicken oder Eingeben – oder den Fokus erhalten kann und außerdem einen deaktivierten Zustand besitzt, in dem dies nicht möglich ist. |
:disabled |
Jedes aktuell deaktivierte Element, das auch einen aktivierten Zustand besitzt und ohne die Deaktivierung benutzt 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 gerade placeholder-Text anzeigt.
Dazu gehören <input>- und <textarea>-Elemente
mit dem Attribut placeholder, denen noch kein Wert zugewiesen wurde.
|
:default |
Formularelemente, die innerhalb einer Gruppe zusammengehöriger Elemente die Standardauswahl sind. Entspricht Eingabetypen checkbox und radio, die beim Laden oder Darstellen der Seite ausgewählt waren. |
:checked |
Entspricht aktuell ausgewählten Eingabetypen checkbox
und radio sowie einem aktuell ausgewählten
<option> in einem <select>.
|
:indeterminate |
checkbox-Elemente, deren Eigenschaft für den
unbestimmten Zustand durch JavaScript auf true gesetzt wurde;
radio-Elemente, wenn kein Optionsfeld
mit demselben Namen im Formular ausgewählt ist; sowie
<progress>-Elemente in einem unbestimmten Zustand.
|
:valid |
Formularsteuerelemente, für die eine Einschränkungsvalidierung möglich ist und die aktuell gültig sind. |
:invalid |
Formularsteuerelemente, für die eine Einschränkungsvalidierung gilt und
die aktuell ungültig sind. Entspricht einem Formularsteuerelement, dessen
Wert die durch Attribute wie required,
pattern,
step und
max festgelegten Einschränkungen nicht erfüllt.
|
:in-range |
Ein nicht leeres Eingabefeld, dessen aktueller Wert innerhalb der durch
min, max
und step festgelegten Grenzen liegt.
|
:out-of-range |
Ein nicht leeres Eingabefeld, dessen aktueller Wert NICHT innerhalb der
durch min und
max festgelegten Grenzen liegt oder
die Einschränkung durch step nicht erfüllt.
|
:required |
Ein <input>-, <select>- oder
<textarea>-Element mit dem Attribut
required.
Entspricht nur Elementen, für die eine Pflichtangabe möglich ist.
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 eine Pflichtangabe unmöglich ist.
|
:blank |
<input>- und <textarea>-Elemente,
die aktuell keinen Wert haben.
|
:user-invalid |
Ähnlich wie :invalid, wird aber nach einer Benutzerinteraktion
aktiviert. Entspricht einer ungültigen Eingabe erst, nachdem Benutzer
beispielsweise das Steuerelement fokussiert und wieder verlassen oder
versucht haben, das Formular mit dem ungültigen Steuerelement abzusenden.
|
:open |
<input>-Elemente, die eine Auswahloberfläche für einen
Wert anzeigen, beispielsweise <input type="color"> –
allerdings nur, solange das Element geöffnet ist und die Auswahloberfläche angezeigt wird.
|
Beispiel für Pseudoklassen
Die Beschriftung eines Kontrollkästchens lässt sich abhängig davon gestalten, ob das Kästchen ausgewählt ist. In diesem Beispiel legen wir color und font-weight für das <label> fest, das unmittelbar auf ein ausgewähltes Eingabefeld folgt. Ist input nicht ausgewählt, werden keine Stile angewendet.
input:checked + label {
color: red;
font-weight: bold;
}
Attributselektoren
Mit Attributselektoren können Sie Formularsteuerelemente anhand ihres type auswählen. 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 erscheint Platzhaltertext halbtransparent oder hellgrau. Das Pseudoelement ::placeholder repräsentiert den placeholder-Text eines Eingabefelds. Es lässt sich mit einer begrenzten Auswahl von CSS-Eigenschaften gestalten.
::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 legen Sie die Farbe des Texteingabecursors fest:
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 steuern Sie, wie die Größe von Formulareingabefeldern bestimmt wird. Standardmäßig erhalten sie eine bevorzugte Größe. Mit dieser Eigenschaft können Sie das Standardverhalten überschreiben, sodass sich die Größe der Formularsteuerelemente an ihren Inhalt anpasst.
Typischerweise wird die Eigenschaft verwendet, um Formularfelder zu erstellen, die sich zunächst eng an ihren Inhalt anschmiegen und mit zusätzlichem Text wachsen. Das funktioniert mit Eingabetypen für direkte Texteingaben, etwa 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 lassen sich seine Größe und Position innerhalb seines Rahmens mit den CSS-Eigenschaften object-position und object-fit anpassen.
Gestaltung
Weitere Informationen zum Einfärben von HTML-Elementen finden Sie unter:
Siehe auch:
Zusätzliche Funktionen
>Beschriftungen
Beschriftungen werden benötigt, um ein <input> mit erläuterndem Text zu verknüpfen. Das Element <label> stellt Informationen zu einem Formularfeld bereit, die – abgesehen von möglichen Layoutaspekten – immer sinnvoll sind. Es ist stets empfehlenswert, mit einem <label> zu erläutern, was in ein <input> oder <textarea> eingegeben werden soll.
Zugeordnete Beschriftungen
Die semantische Verknüpfung von <input>- und <label>-Elementen hilft unterstützenden Technologien wie Screenreadern. Wenn Sie beide über das Attribut for von <label> verbinden, können Screenreader das Eingabefeld genauer beschreiben.
Einfacher Text neben dem <input>-Element reicht nicht aus. Für Bedienbarkeit und Barrierefreiheit ist stattdessen ein implizit oder explizit zugeordnetes <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.
Eine Beschriftung stellt nicht nur einen zugänglichen Namen bereit, sondern vergrößert auch die Fläche, die Benutzer mit der Maus anklicken oder auf einem Touchscreen berühren können. Ist ein <label> mit einem <input> verknüpft, fokussiert ein Klick auf eines der beiden das <input>. Bei einfachem Text, der nur als Beschriftung dienen soll, geschieht das nicht. Eine größere Aktivierungsfläche ist besonders für Menschen mit motorischen Einschränkungen hilfreich.
Als Webentwickler sollten wir niemals voraussetzen, 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 aufgrund anderer Denkweisen oder Umstände Ihre Formulare ohne klare, angemessen dargestellte Beschriftungen ganz anders verstehen als Sie.
Platzhalter sind nicht barrierefrei
Mit dem Attribut placeholder legen Sie Text fest, der im Inhaltsbereich eines leeren <input>-Elements erscheint. Das Verständnis eines Formulars darf niemals vom Platzhalter abhängen. Er ist keine Beschriftung und sollte nicht als Ersatz dafür verwendet werden. Ein Platzhalter gibt einen Hinweis darauf, wie ein Eingabewert aussehen sollte; er dient nicht als Erklärung oder Aufforderung.
Platzhalter sind nicht nur für Screenreader schwer zugänglich, sondern verschwinden auch, sobald Benutzer Text in das Formularsteuerelement eingeben oder bereits ein Wert vorhanden ist. Browser mit automatischer Seitenübersetzung überspringen bei der Übersetzung möglicherweise Attribute, sodass placeholder unter Umständen nicht übersetzt wird.
Hinweis:
Vermeiden Sie nach Möglichkeit das Attribut placeholder. Wenn Sie ein <input>-Element beschriften müssen, verwenden Sie <label>.
Clientseitige Validierung
Warnung:
Clientseitige Validierung ist nützlich, garantiert aber nicht, dass beim Server gültige Daten ankommen. Wenn Daten einem bestimmten Format entsprechen müssen, prüfen Sie sie immer auch auf dem Server und geben Sie bei einem ungültigen Format eine HTTP-Antwort 400 zurück.
Wie oben unter UI-Pseudoklassen beschrieben, können Sie Eingabefelder mit CSS anhand ihres aktuellen Zustands über :valid oder :invalid gestalten. Darüber hinaus bietet der Browser eine clientseitige Validierung, wenn versucht wird, ein Formular abzusenden. Besteht dabei ein Formularsteuerelement die Einschränkungsvalidierung nicht, zeigen unterstützende Browser am ersten ungültigen Steuerelement eine Fehlermeldung an: entweder eine Standardmeldung zum Fehlertyp oder eine von Ihnen festgelegte Meldung.
Einige Eingabetypen und Attribute schränken die gültigen Werte ein. <input type="number" min="2" max="10" step="2"> erlaubt beispielsweise nur die Zahlen 2, 4, 6, 8 und 10. Verschiedene Fehler sind möglich: rangeUnderflow bei einem Wert unter 2, rangeOverflow bei einem Wert über 10, stepMismatch bei einer Zahl zwischen 2 und 10, die keine gerade ganze Zahl ist und damit step nicht entspricht, oder typeMismatch, wenn der Wert keine Zahl ist.
Bei Eingabetypen mit einem periodischen Wertebereich – bei denen nach dem höchstmöglichen Wert wieder der niedrigste folgt – dürfen die Werte der Eigenschaften max und min vertauscht sein. Das bedeutet, dass der zulässige Bereich bei min beginnt, nach dem höchstmöglichen Wert beim niedrigsten fortgesetzt wird und bei max endet. Das ist besonders für Datums- und Uhrzeitwerte nützlich, etwa wenn Sie einen Bereich von 20:00 Uhr bis 08: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 bestimmten ValidityState-Fehler führen:
| Attribut | Relevante Eigenschaft | Beschreibung |
|---|---|---|
max |
[`validityState.rangeOverflow`](/de/docs/Web/API/ValidityState/rangeOverflow) |
Tritt auf, wenn der Wert größer ist als der durch max
festgelegte Höchstwert.
|
maxlength |
[`validityState.tooLong`](/de/docs/Web/API/ValidityState/tooLong) |
Tritt auf, wenn die Anzahl der Zeichen größer ist als die durch
maxlength erlaubte Anzahl.
|
min |
[`validityState.rangeUnderflow`](/de/docs/Web/API/ValidityState/rangeUnderflow) |
Tritt auf, wenn der Wert kleiner ist als der durch min
festgelegte Mindestwert.
|
minlength |
[`validityState.tooShort`](/de/docs/Web/API/ValidityState/tooShort) |
Tritt auf, wenn die Anzahl der Zeichen kleiner ist als die durch
minlength geforderte Anzahl.
|
pattern |
[`validityState.patternMismatch`](/de/docs/Web/API/ValidityState/patternMismatch) |
Tritt auf, wenn ein gültiger regulärer Ausdruck mit pattern
angegeben ist und value ihm nicht entspricht.
|
required |
[`validityState.valueMissing`](/de/docs/Web/API/ValidityState/valueMissing) |
Tritt auf, wenn 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 Schrittweite. Standardmäßig beträgt diese
1; bei type="number" sind ohne Angabe von
step daher nur ganze Zahlen gültig.
step="any" löst diesen Fehler nie aus.
|
type |
[`validityState.typeMismatch`](/de/docs/Web/API/ValidityState/typeMismatch) |
Tritt auf, wenn der Wert nicht dem richtigen Typ entspricht,
beispielsweise wenn eine E-Mail-Adresse kein @ oder eine URL kein Protokoll enthält.
|
Wenn ein Formularsteuerelement nicht das Attribut required besitzt, ist ein fehlender Wert beziehungsweise eine leere Zeichenfolge nicht ungültig. Selbst wenn die oben genannten Attribute vorhanden sind, führt eine leere Zeichenfolge – mit Ausnahme von required – zu keinem Fehler.
Wir können einschränken, welche Werte akzeptiert werden. Unterstützende Browser validieren diese Formularwerte selbst und weisen Benutzer beim Absenden auf Fehler hin.
Neben den in der Tabelle beschriebenen Fehlern enthält die Schnittstelle validityState die schreibgeschützten booleschen Eigenschaften badInput, valid und customError. Das Gültigkeitsobjekt umfasst:
validityState.valueMissingvalidityState.typeMismatchvalidityState.patternMismatchvalidityState.tooLongvalidityState.tooShortvalidityState.rangeUnderflowvalidityState.rangeOverflowvalidityState.stepMismatchvalidityState.badInputvalidityState.validvalidityState.customError
Bei jeder dieser booleschen Eigenschaften bedeutet true, dass der jeweilige mögliche Fehlergrund vorliegt. Die Ausnahme ist valid: Diese Eigenschaft ist true, wenn der Wert des Elements alle Einschränkungen erfüllt.
Bei einem Fehler weisen unterstützende Browser Benutzer darauf hin und verhindern das Absenden des Formulars. Beachten Sie: Ist ein benutzerdefinierter Fehler auf einen als wahr ausgewerteten Wert gesetzt – also auf etwas anderes als eine leere Zeichenfolge oder null –, wird das Absenden verhindert. Ist keine benutzerdefinierte Fehlermeldung vorhanden und liefert keine der anderen Eigenschaften true, ist valid gleich true und das Formular kann abgesendet 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, in der die benutzerdefinierte Gültigkeitsmeldung auf eine leere Zeichenfolge gesetzt wird, ist entscheidend. Wenn nach einem Eingabefehler eine Fehlermeldung gesetzt bleibt, kann das Formular selbst dann nicht abgesendet werden, wenn inzwischen alle Werte gültig sind – bis die Meldung null ist.
Beispiel für einen benutzerdefinierten Validierungsfehler
Wenn Sie bei einer fehlgeschlagenen Validierung eine eigene Fehlermeldung anzeigen möchten, verwenden Sie die Constraint Validation API, die für <input>-Elemente und verwandte Elemente verfügbar ist. Betrachten Sie folgendes 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 grundlegende HTML-Formularvalidierung zeigt eine Standardfehlermeldung an, wenn Sie versuchen, das Formular ohne gültigen Wert oder mit einem Wert abzusenden, der pattern nicht entspricht.
Um stattdessen eigene Fehlermeldungen anzuzeigen, können Sie beispielsweise folgendes JavaScript 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 dargestellt:
Kurz zusammengefasst:
- Jedes Mal, wenn sich der Wert des Eingabeelements ändert, prüfen wir seinen Gültigkeitszustand, indem wir im Handler des
input-EreignissescheckValidity()aufrufen. - Ist der Wert ungültig, wird ein
invalid-Ereignis ausgelöst und dessen Handler ausgeführt. Darin ermitteln wir mit einemif ()-Block, ob der Wert wegen eines leeren Felds oder wegen einer Abweichung vom Muster ungültig ist, und legen eine benutzerdefinierte Fehlermeldung fest. - Ist der Eingabewert beim Drücken der Schaltfläche zum Absenden ungültig, erscheint dadurch eine der benutzerdefinierten Fehlermeldungen.
- Ist der Wert gültig, wird das Formular wie erwartet abgesendet. Dazu muss die benutzerdefinierte Fehlermeldung durch einen Aufruf von
setCustomValidity()mit einer leeren Zeichenfolge aufgehoben werden. Deshalb tun wir dies bei jedeminput-Ereignis. Andernfalls würde ein zuvor gesetzter benutzerdefinierter Fehler das Eingabefeld beim Absenden weiterhin als ungültig kennzeichnen, obwohl es inzwischen einen gültigen Wert enthält.
Hinweis: Validieren Sie Eingaben immer sowohl clientseitig als auch serverseitig. Die Einschränkungsvalidierung ersetzt die Validierung auf dem Server nicht. Ungültige Werte können weiterhin von älteren Browsern oder böswilligen Akteuren gesendet werden.
Hinweis:
Firefox unterstützte über viele Versionen hinweg das proprietäre Attribut 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 vom Gebietsschema ab. In manchen Gebietsschemas ist 1,000.00 eine gültige Zahl; in anderen muss dieselbe Zahl als 1.000,00 eingegeben werden.
Firefox verwendet die folgenden Heuristiken, um das Gebietsschema für die Validierung der Benutzereingabe zu bestimmen, zumindest bei type="number":
- Zuerst wird die Sprache verwendet, die durch ein
lang- oderxml:lang-Attribut am Element oder einem seiner übergeordneten Elemente angegeben ist. - Danach wird die Sprache aus einem gegebenenfalls vorhandenen HTTP-Header
Content-Languageversucht. - Ist keine Sprache angegeben, wird das Gebietsschema des Browsers verwendet.
Barrierefreiheit
>Beschriftungen
Bei Eingabefeldern sind zugehörige Beschriftungen eine Anforderung der Barrierefreiheit. Menschen, die unterstützende Technologien verwenden, können dadurch erkennen, wozu ein Feld dient. Ein Klick oder eine Berührung der Beschriftung fokussiert außerdem das zugehörige Formularsteuerelement. Das verbessert auch für sehende Benutzer die Zugänglichkeit und Bedienbarkeit, weil die anklickbare beziehungsweise berührbare Fläche größer wird. Besonders hilfreich – und teils notwendig – ist das für die kleinen Optionsfelder und Kontrollkästchen. Weitere Informationen finden Sie unter Beschriftungen.
Das folgende Beispiel zeigt, wie Sie ein <label> auf die oben beschriebene Weise mit einem <input>-Element verknüpfen. Geben Sie dem <input> ein Attribut id. Das <label> benötigt dann 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 leicht aktiviert werden können. Das hilft unter anderem Menschen mit motorischen Einschränkungen und Menschen, 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, absendbares, zurücksetzbares und einem Formular zugeordnetes Element;
Textinhalt.
Wenn type nicht hidden ist,
außerdem beschriftbares Element und wahrnehmbarer Inhalt.
|
|---|---|
| Zulässiger Inhalt | Keiner; es ist ein leeres Element. |
| Weglassen von Tags | Ein Start-Tag ist erforderlich; ein End-Tag darf nicht vorhanden sein. |
| Zulässige Elternelemente | Jedes Element, das Textinhalt akzeptiert. |
| Implizite ARIA-Rolle |
|
| Zulässige ARIA-Rollen |
|
| DOM-Schnittstelle | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
Spezifikationen
| Spezifikation |
|---|
| HTML> # the-input-element> |