<input>: Das HTML Input-Element
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
* Some parts of this feature may have varying levels of support.
Das <input>-Element HTML wird verwendet, um interaktive Steuerelemente für webbasierte Formulare zu erstellen, um Daten vom Benutzer zu akzeptieren. Je nach Gerät und Benutzeragent stehen eine Vielzahl von Eingabedaten und Steuerelement-Widgets zur Verfügung. Das <input>-Element ist eines der mächtigsten und komplexesten im gesamten HTML aufgrund der schier zahlreichen Kombinationen von Eingabetypen und Attributen.
Probieren Sie es aus
<label for="name">Name (4 to 8 characters):</label>
<input
type="text"
id="name"
name="name"
required
minlength="4"
maxlength="8"
size="10" />
label {
display: block;
font:
1rem "Fira Sans",
sans-serif;
}
input,
label {
margin: 0.4rem 0;
}
<input> Typen
Wie ein <input> funktioniert, variiert erheblich abhängig vom Wert seines type-Attributs. Daher werden die unterschiedlichen Typen in separaten Referenzseiten behandelt. Wenn dieses Attribut nicht angegeben wird, ist der Standardtyp text.
Die verfügbaren Typen sind wie folgt:
| Typ | Beschreibung | Grundlegende Beispiele |
|---|---|---|
| button |
Ein Druckknopf ohne Standardverhalten, der den Wert des value-Attributs anzeigt, standardmäßig leer.
|
|
| checkbox | Eine Checkbox, die einzelne Werte zur Auswahl/Deselect erlauben. |
|
| color | Ein Kontroller zur Farbauswahl, der in unterstützenden Browsern einen Farbwähler öffnet. |
|
| date | Ein Steuerelement zur Dateneingabe (Jahr, Monat und Tag ohne Zeit). Öffnet in unterstützenden Browsern einen Datumswähler oder numerische Rollen für Jahr, Monat, Tag. |
|
| datetime-local | Ein Steuerelement zur Eingabe von Datum und Uhrzeit, ohne Zeitzone. Öffnet einen Datumswähler oder numerische Rollen für Datum- und Zeitkomponenten in unterstützenden Browsern. |
|
Ein Feld zur Bearbeitung einer E-Mail-Adresse. Sieht aus wie eine
text-Eingabe, hat aber Validierungsparameter und eine relevante
Tastatur in unterstützenden Browsern und Geräten mit dynamischen Tastaturen.
|
|
|
| file |
Ein Steuerelement, mit dem der Benutzer eine Datei auswählen kann.
Verwenden Sie das accept-Attribut, um die Dateitypen zu definieren, die das Steuerelement auswählen kann.
|
|
| hidden | Ein Steuerelement, das nicht angezeigt wird, dessen Wert jedoch an den Server übermittelt wird. Es gibt ein Beispiel in der nächsten Spalte, aber es ist versteckt! | |
| image |
Ein grafischer submit-Button. Zeigt ein Bild an, das durch das src-Attribut definiert ist.
Das alt-Attribut wird angezeigt, wenn das Bild src fehlt.
|
|
| month | Ein Steuerelement zur Eingabe eines Monats und eines Jahres, ohne Zeitzone. |
|
| number | Ein Steuerelement zur Eingabe einer Zahl. Zeigt eine Spinnsteuerung an und fügt eine Standardvalidierung hinzu. Zeigt eine numerische Tastatur auf einigen Geräten mit dynamischen Tastaturen an. |
|
| password | Ein einzeiliges Textfeld, dessen Wert verschleiert ist. Warnt den Benutzer, wenn die Seite nicht sicher ist. |
|
| radio |
Ein Radiobutton, der die Auswahl eines einzelnen Wertes aus mehreren mit demselben name-Wert ermöglicht.
|
|
| range |
Ein Steuerelement zur Eingabe einer Zahl, deren exakter Wert nicht wichtig ist. Wird als Bereichs-Widget angezeigt, das standardmäßig auf den mittleren Wert eingestellt ist. Wird in Verbindung mit min und max verwendet, um den Bereich der akzeptablen Werte zu definieren.
|
|
| reset | Ein Knopf, der den Inhalt des Formulars auf die Standardwerte zurücksetzt. Nicht empfohlen. |
|
| search | Ein einzeiliges Textfeld zur Eingabe von Suchzeichenfolgen. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. Kann in unterstützenden Browsern ein Löschsymbol enthalten, das verwendet werden kann, um das Feld zu löschen. Zeigt ein Suche-Symbol anstelle der Eingabetaste auf einigen Geräten mit dynamischen Tastaturen an. |
|
| submit | Ein Knopf, der das Formular absendet. |
|
| tel | Ein Steuerelement zur Eingabe einer Telefonnummer. Zeigt eine Telefon-Tastatur auf einigen Geräten mit dynamischen Tastaturen an. |
|
| text | Der Standardwert. Ein einzeiliges Textfeld. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. |
|
| time | Ein Steuerelement zur Eingabe eines Zeitwerts ohne Zeitzone. |
|
| url |
Ein Feld zur Eingabe einer URL. Sieht aus wie eine text-Eingabe, hat aber Validierungsparameter und eine relevante Tastatur in unterstützenden Browsern und Geräten mit dynamischen Tastaturen.
|
|
| week | Ein Steuerelement zur Eingabe eines Datums, das aus einer Wochennummer und einer Jahrwoche besteht, ohne Zeitzone. |
|
| Veraltete Werte | ||
datetime
Veraltet
|
Ein Steuerelement zur Eingabe eines Datums und einer Uhrzeit (Stunde, Minute, Sekunde und Bruchteil einer Sekunde) basierend auf UTC-Zeitzone. |
|
Attribute
Das <input>-Element ist so mächtig, aufgrund seiner Attribute; das type-Attribut, wie oben in den Beispielen beschrieben, ist das wichtigste. Da jedes <input>-Element, unabhängig vom Typ, auf der HTMLInputElement-Schnittstelle basiert, teilen sie technisch gesehen denselben Satz an Attributen. In der Realität haben jedoch die meisten Attribute nur einen Effekt auf eine bestimmte Teilmenge von Eingabetypen. Darüber hinaus beeinflussen einige Attribute, je nach Eingabetyp, unterschiedliche Eingabetypen auf unterschiedliche Weise.
Dieser Abschnitt enthält eine Tabelle, in der alle Attribute mit einer kurzen Beschreibung aufgeführt sind. Danach folgt eine Liste, die jedes Attribut im Detail beschreibt, sowie die damit verbundenen Eingabetypen. Attribute, die den meisten oder allen Eingabetypen gemeinsam sind, werden weiter unten ausführlicher definiert. Attribute, die für bestimmte Eingabetypen einzigartig sind – oder Attribute, die für alle Eingabetypen gemeinsam sind, aber spezielle Verhaltensweisen haben, wenn sie auf einen bestimmten Eingabetyp angewendet werden – werden stattdessen auf den Seiten dieser Typen dokumentiert.
Attribute für das <input>-Element umfassen die globalen HTML-Attribute und zusätzlich:
| Attribut | Typ(en) | Beschreibung |
|---|---|---|
accept |
file |
Hinweis auf erwarteten Dateityp in Datei-Upload-Steuerelementen |
alpha |
color |
Deckkraft der Farbe |
alt |
image |
Alt-Attribut für den Bildtyp. Erforderlich für die Barrierefreiheit |
autocapitalize |
alle außer url, email, und password |
Steuert die automatische Großschreibung von eingegebenem Text. |
autocomplete |
alle außer checkbox, radio, und Schaltflächen |
Hinweis für das automatische Ausfüllen von Formularen |
capture |
file |
Eingabemethode für Medienaufnahme in Datei-Upload-Steuerelementen |
checked |
checkbox, radio |
Ob der Befehl oder das Steuerelement aktiviert ist |
colorspace |
color |
Der Farbraum, der zur Auswahl des Farbwerts verwendet werden soll |
dirname |
hidden, text, search, url, tel, email |
Name des Formularfelds zur Übermittlung der Ausrichtung des Elements bei der Formularübermittlung |
disabled |
alle | Ob das Formularsteuerelement deaktiviert ist |
form |
alle | Verknüpft das Steuerelement mit einem Formularelement |
formaction |
image, submit |
URL für die Formularübermittlung |
formenctype |
image, submit |
Kodierungstyp des Formulardatensatzes für die Formularübermittlung |
formmethod |
image, submit |
HTTP-Methode zur Formularübermittlung |
formnovalidate |
image, submit |
Umgehen der Formularsteuerelementvalidierung für die Formularübermittlung |
formtarget |
image, submit |
Browsing-Kontext für die Formularübermittlung |
height |
image |
Entspricht dem Höhenattribut für <img>; vertikale Dimension |
list |
alle außer hidden, password, checkbox, radio, und Schaltflächen |
Wert des ID-Attributs der <datalist> mit Autovervollständigungsoptionen |
max |
date, month, week, time, datetime-local, number, range |
Maximalwert |
maxlength |
text, search, url, tel, email, password |
Maximale Länge (Anzahl Zeichen) des value |
min |
date, month, week, time, datetime-local, number, range |
Minimalwert |
minlength |
text, search, url, tel, email, password |
Minimale Länge (Anzahl Zeichen) des value |
multiple |
email, file |
Boolean. Ob mehrere Werte erlaubt sind |
name |
alle | Name des Formularsteuerelements. Wird mit dem Formular als Teil eines Name/Wert-Paars übermittelt |
pattern |
text, search, url, tel, email, password |
Muster, das der value entsprechen muss, um gültig zu sein |
placeholder |
text, search, url, tel, email, password, number |
Text, der im Formularsteuerelement erscheint, wenn kein Wert gesetzt ist |
popovertarget |
button |
Weist einem <input type="button"> als Steuerelement für ein Popover-Element zu |
popovertargetaction |
button |
Gibt die Aktion an, die ein Popover-Steuerelement ausführen soll |
readonly |
alle außer hidden, range, color, checkbox, radio, und Schaltflächen |
Boolean. Der Wert ist nicht bearbeitbar |
required |
alle außer hidden, range, color, und Schaltflächen |
Boolean. Ein Wert ist erforderlich oder muss aktiviert werden, damit das Formular übermittelt werden kann |
size |
text, search, url, tel, email, password |
Größe des Steuerelements |
src |
image |
Entspricht dem src-Attribut für <img>; Adresse der Bildressource |
step |
date, month, week, time, datetime-local, number, range |
Schrittweise gültige Werte |
switch |
checkbox |
Ob die Checkbox als Schalter dargestellt werden soll |
type |
alle | Typ des Formularsteuerelements |
value |
alle außer image |
Der Wert des Steuerelements. Wenn im HTML angegeben, entspricht es dem Anfangswert |
width |
image |
Entspricht dem width-Attribut für <img> |
Einige zusätzliche nicht standardisierte Attribute werden nach den Beschreibungen der Standardattribute aufgelistet.
Einzelne Attribute
accept-
Gültig nur für den
fileEingabetyp, dasaccept-Attribut definiert, welche Dateitypen in einemfileUpload-Steuerelement auswählbar sind. Siehe den file Eingabetyp. alphaExperimentell-
Gültig nur für den
colorEingabetyp, dasalpha-Attribut gibt dem Endbenutzer die Möglichkeit, die Deckkraft der ausgewählten Farbe festzulegen. alt-
Gültig nur für den
imageButton, dasalt-Attribut liefert alternativen Text für das Bild und zeigt den Wert des Attributs an, falls das Bildsrcfehlt oder anderweitig nicht geladen werden kann. Siehe den image Eingabetyp. autocapitalize-
Steuert, ob eingegebener Text automatisch in Großbuchstaben umgewandelt wird und, falls ja, auf welche Weise. Siehe die globalen Attributseite
autocapitalizefür weitere Informationen. autocomplete-
(Kein booleanes Attribut!) Das
autocomplete-Attribut nimmt als Wert eine durch Leerzeichen getrennte Zeichenfolge an, die beschreibt, welche Art von Autovervollständigungsfunktionalität das Eingabefeld bereitstellen soll. Eine typische Implementierung von Autovervollständigung erfasst zuvor eingegebene Werte in demselben Eingabefeld, es können jedoch komplexere Formen der Autovervollständigung existieren. Beispielsweise könnte ein Browser die Kontaktliste eines Geräts integrieren, umemail-Adressen in einem E-Mail-Eingabefeld automatisch auszufüllen. Sieheautocompletefür erlaubte Werte.Das
autocomplete-Attribut ist gültig fürhidden,text,search,url,tel,email,date,month,week,time,datetime-local,number,range,color, undpassword. Dieses Attribut hat keine Wirkung auf Eingabetypen, die keine numerischen oder Textdaten zurückgeben, es ist für alle Eingabetypen außercheckbox,radio,file, oder eine der Schaltflächen-Typen gültig.Siehe das
autocomplete-Attribut für weitere Informationen, einschließlich Informationen zur Passwortsicherheit und wieautocompletebeihiddenleicht anders ist als bei anderen Eingabetypen. autofocus-
Ein booleanes Attribut, das, falls vorhanden, angibt, dass das Eingabefeld automatisch den Fokus haben soll, wenn die Seite fertig geladen ist (oder wenn das
<dialog>, das das Element enthält, angezeigt wird).Hinweis: Ein Element mit dem
autofocus-Attribut kann den Fokus erhalten, bevor dasDOMContentLoaded-Ereignis ausgelöst wird.Nicht mehr als ein Element im Dokument darf das
autofocus-Attribut haben. Wenn es auf mehr als einem Element angebracht ist, erhält das erste Element mit dem Attribut den Fokus.Das
autofocus-Attribut kann nicht auf Eingaben vom Typhiddenverwendet werden, da verborgene Eingaben nicht fokussiert werden können.Warnung: Ein automatisches Fokussieren eines Formularsteuerelements kann sehbehinderten Menschen, die Bildschirmlesegeräte verwenden, und Menschen mit kognitiven Beeinträchtigungen verwirren. Wenn
autofocuszugewiesen ist, "teleportieren" Bildschirmlesegeräte ihren Benutzer ohne Vorwarnung zum Formularsteuerelement.Verwenden Sie das
autofocus-Attribut mit Bedacht auf die Barrierefreiheit. Ein automatisches Fokussieren auf ein Steuerelement kann dazu führen, dass die Seite beim Laden scrollt. Der Fokus kann auch auf einigen Touch-Geräten dynamische Tastaturen anzeigen. Während ein Bildschirmlesegerät das Label des Formularsteuerelements ankündigt, das den Fokus erhält, wird das Bildschirmlesegerät nichts vor dem Label ankündigen, und der sehende Benutzer auf einem kleinen Gerät wird den Kontext des vorangegangenen Inhalts ebenso verpassen. capture-
Eingeführt in der HTML Media Capture-Spezifikation und nur für den
fileEingabetyp gültig, definiert dascapture-Attribut, welches Medium – Mikrofon, Video oder Kamera – verwendet werden soll, um eine neue Datei mit demfileUpload-Steuerelement in unterstützenden Szenarien hochzuladen. Siehe den file Eingabetyp. checked-
Gültig für die Typen
radioundcheckbox, istcheckedein booleanes Attribut. Wenn es auf einemradio-Typ vorhanden ist, gibt es an, dass der Radiobutton der aktuell ausgewählte in der Gruppe der gleichnamigen Radiobuttons ist. Wenn es auf einemcheckbox-Typ vorhanden ist, gibt es an, dass die Checkbox standardmäßig aktiviert ist (wenn die Seite geladen wird). Es zeigt nicht an, ob diese Checkbox aktuell aktiviert ist: Wenn sich der Zustand der Checkbox ändert, spiegelt dieses Inhaltsattribut die Änderung nicht wider. (Nur dasHTMLInputElementcheckedIDL-Attribut wird aktualisiert.)Hinweis: Im Gegensatz zu anderen Eingabesteuerungen werden der Wert von Checkboxen und Radiobuttons nur dann in den übermittelten Daten enthalten, wenn sie derzeit
checkedsind. Wenn sie es sind, werden der Name und die Werte der aktivierten Kontrollen übermittelt.Wenn beispielsweise eine Checkbox mit dem
namefruitdenvalue"cherry" hat und die Checkbox aktiviert ist, enthalten die übermittelten Formulardatenfruit=cherry. Wenn die Checkbox nicht aktiv ist, wird sie in den Formulardaten nicht aufgeführt. Der Standardwert für Checkboxen und Radiobuttons iston. colorspaceExperimentell-
Gültig nur für den
colorEingabetyp, gibt dascolorspace-Attribut den Farbraum an, der von der Eingabe mittype="color"verwendet wird. Mögliche aufgelistete Werte sind:"limited-srgb": Die Farbe befindet sich im sRGB Farbraum. Dies umfasstrgb(),hsl(),hwb()und<hex-color>Werte. Der Farbwert ist auf 8-Bit pror,gundbKomponente begrenzt. Dies ist der Standard."display-p3": Der Display P3 Farbraum, z.B.color(display-p3 1.84 -0.19 0.72 / 0.6)
dirname-
Gültig für die Eingabetypen
hidden,text,search,url,telundemail, ermöglicht dasdirname-Attribut die Übermittlung der Ausrichtung des Elements. Wenn sie enthalten ist, wird das Formularsteuerelement mit zwei Name/Wert-Paaren übermittelt: das erste istname/valueund das zweite ist der Wert desdirname-Attributs als Name mit einem Wert vonltroderrtl, wie vom Browser festgelegt.html<form action="page.html" method="post"> <label> Fruit: <input type="text" name="fruit" dirname="fruit-dir" value="cherry" /> </label> <input type="submit" /> </form> <!-- page.html?fruit=cherry&fruit-dir=ltr -->Wenn das oben genannte Formular übermittelt wird, führt die Eingabe dazu, dass sowohl das
name/valuePaarfruit=cherryals auch dasdirname/ Richtungspaarfruit-dir=ltrgesendet werden. Weitere Informationen finden Sie imdirname-Attribut. disabled-
Ein booleanes Attribut, das, wenn vorhanden, angibt, dass der Benutzer nicht mit der Eingabe interagieren sollte. Deaktivierte Eingaben werden typischerweise mit einer abgedunkelten Farbe angezeigt oder durch eine andere Form der Anzeige, dass das Feld nicht verfügbar ist.
Insbesondere erhalten deaktivierte Eingaben nicht das
click-Ereignis und werden nicht zusammen mit dem Formular übermittelt.Hinweis: Obwohl nicht von der Spezifikation gefordert, wird Firefox standardmäßig den dynamischen deaktivierten Zustand von einem
<input>über Seitenladungen hinweg speichern. Verwenden Sie dasautocomplete-Attribut, um diese Funktion zu steuern. form-
Ein String, der das
<form>-Element angibt, mit dem die Eingabe zugeordnet ist (d.h. ihr Formularbesitzer). Der Wert dieses Strings, falls vorhanden, muss mit derideines<form>-Elements im selben Dokument übereinstimmen. Wenn dieses Attribut nicht angegeben ist, ist das<input>-Element mit dem nächstgelegenen enthaltenen Formular assoziiert, falls vorhanden.Das
form-Attribut ermöglicht es Ihnen, eine Eingabe überall im Dokument zu platzieren, aber sie in einem Formular an anderer Stelle im Dokument einzubinden.Hinweis: Eine Eingabe kann nur einem Formular zugeordnet sein.
formaction-
Nur gültig für die Eingabetypen
imageundsubmit. Weitere Informationen finden Sie im submit-Eingabetyp. formenctype-
Nur gültig für die Eingabetypen
imageundsubmit. Weitere Informationen finden Sie im submit-Eingabetyp. formmethod-
Nur gültig für die Eingabetypen
imageundsubmit. Weitere Informationen finden Sie im submit-Eingabetyp. formnovalidate-
Nur gültig für die Eingabetypen
imageundsubmit. Weitere Informationen finden Sie im submit-Eingabetyp. formtarget-
Nur gültig für die Eingabetypen
imageundsubmit. Weitere Informationen finden Sie im submit-Eingabetyp. height-
Nur gültig für den
image-Button, dieheightist die Höhe der Bilddatei, die als grafischer Submit-Button dargestellt werden soll. Siehe den image-Eingabetyp. id-
Globales Attribut, das für alle Elemente gültig ist, einschließlich aller Eingabentypen, definiert eine eindeutige Kennung (ID), die im gesamten Dokument einzigartig sein muss. Sein Zweck ist es, das Element beim Verlinken zu identifizieren. Der Wert wird als Wert des
<label>for-Attributs verwendet, um das Label mit dem Formularsteuerelement zu verknüpfen. Siehe<label>. inputmode-
Globaler Wert, der für alle Elemente gültig ist, und einen Hinweis an Browser liefert, welche Art von virtueller Tastaturkonfiguration beim Bearbeiten dieses Elements oder seines Inhalts verwendet werden soll. Werte umfassen
none,text,tel,url,email,numeric,decimal, undsearch. list-
Der dem
list-Attribut zugewiesene Wert sollte dieideinesdatalist-Elements im selben Dokument sein. Die<datalist>bietet eine Liste von vordefinierten Werten, die dem Benutzer zur Eingabe für diese Eingabe vorgeschlagen werden. Alle in der Liste enthaltenen Werte, die nicht mit demtypeübereinstimmen, werden nicht in den vorgeschlagenen Optionen enthalten sein. Die bereitgestellten Werte sind Vorschläge, keine Anforderungen: Nutzer können aus dieser vorgefertigten Liste auswählen oder einen anderen Wert angeben.Es ist gültig für
text,search,url,tel,email,date,month,week,time,datetime-local,number,range, undcolor.Entsprechend den Spezifikationen wird das
list-Attribut nicht vonhidden,password,checkbox,radio,file, oder einer der Schaltflächentypen unterstützt.Abhängig vom Browser kann der Benutzer eine benutzerdefinierte Farbpalette vorgeschlagen bekommen, Markierungen entlang eines Bereichs, oder sogar eine Eingabe, die sich wie ein
<select>öffnet, aber nicht gelistete Werte zulässt. Überprüfen Sie die Browser-Kompatibilitätstabelle für die anderen Eingabetypen.Siehe das
<datalist>-Element. max-
Gültig für
date,month,week,time,datetime-local,number, undrange, definiert den höchsten Wert innerhalb des Bereichs der erlaubten Werte. Wenn der eingegebenevaluedieses Element überschreitet, schlägt die Element-Einschränkungsvalidierung fehl. Wenn der Wert desmax-Attributs keine Zahl ist, hat das Element keinen Maximalwert.Es gibt einen Sonderfall: Wenn der Datentyp periodisch ist (wie bei Daten oder Zeiten), darf der
max-Wert niedriger sein als dermin-Wert, was darauf hinweist, dass der Bereich sich umstellen kann; dies erlaubt es beispielsweise, einen Zeitbereich von 22:00 bis 04:00 Uhr festzulegen. maxlength-
Gültig für
text,search,url,tel,email, undpassword, definiert die maximale Zeichenlänge (gemessen in UTF-16 Codeeinheiten), die der Benutzer in das Feld eingeben kann. Dies muss ein ganzzahliger Wert von 0 oder höher sein. Wenn keinemaxlengthangegeben ist oder ein ungültiger Wert angegeben wird, hat das Feld keine Maximallänge. Dieser Wert muss auch größer oder gleich dem Wert vonminlengthsein.Die Eingabe schlägt bei der Einschränkungsvalidierung fehl, wenn die Länge des eingegebenen Textes größer ist als
maxlengthUTF-16 code units Länge. Standardmäßig verhindern Browser, dass Benutzer mehr Zeichen eingeben, als durch dasmaxlength-Attribut erlaubt sind. Die Einschränkungsvalidierung wird nur angewendet, wenn der Wert durch den Benutzer geändert wird. Siehe Client-seitige Validierung für weitere Informationen. min-
Gültig für
date,month,week,time,datetime-local,number, undrange, definiert den negativsten Wert innerhalb des Bereichs der erlaubten Werte. Wenn der eingegebenevaluedes Elements darunter fällt, schlägt die Einschränkungsvalidierung fehl. Wenn der Wert desmin-Attributs keine Zahl ist, hat das Element keinen Minimalwert.Dieser Wert muss kleiner oder gleich dem Wert des
max-Attributs sein. Wenn dasmin-Attribut vorhanden, aber nicht angegeben oder ungültig ist, wird keinmin-Wert angewendet. Wenn dasmin-Attribut gültig ist und ein Nicht-Null-Wert unter dem minimal erlaubten Wert gemäß demmin-Attribut liegt, verhindert die Einschränkungsvalidierung die Formularübermittlung. Siehe Client-seitige Validierung für weitere Informationen.Es gibt einen Sonderfall: Wenn der Datentyp periodisch ist (wie bei Daten oder Zeiten), darf der
max-Wert niedriger sein als dermin-Wert, was darauf hinweist, dass der Bereich sich umstellen kann; dies erlaubt es beispielsweise, einen Zeitbereich von 22:00 bis 04:00 Uhr festzulegen. minlength-
Gültig für
text,search,url,tel,email, undpassword, definiert die minimal Zeichenlänge (gemessen in UTF-16 Codeeinheiten), die der Benutzer in das Eingabefeld eingeben kann. Dies muss ein nicht-negativer ganzzahliger Wert sein, der kleiner oder gleich der durch dasmaxlength-Attribut festgelegten Länger ist. Wenn keineminlengthangegeben ist oder ein ungültiger Wert angegeben wird, hat die Eingabe keine Minimallänge.Die Eingabe schlägt bei der Einschränkungsvalidierung fehl, wenn die Zeichenanzahl des Textes, die in das Feld eingegeben wird, weniger ist als
minlengthUTF-16 code units und verhindert die Formularübermittlung. Die Einschränkungsvalidierung wird nur angewendet, wenn der Wert durch den Benutzer geändert wird. Siehe Client-seitige Validierung für weitere Informationen. multiple-
Das boolesche
multiple-Attribut, wenn es gesetzt ist, bedeutet, dass der Benutzer durch Komma getrennte E-Mail-Adressen in das E-Mail-Widget eingeben oder mehr als eine Datei mithilfe desfile-Inputs auswählen kann. Siehe den email und file Eingabetyp. name-
Ein String, der einen Namen für das Eingabefeld festlegt. Dieser Name wird zusammen mit dem Wert des Steuerelements übermittelt, wenn die Formulardaten gesendet werden.
Betrachten Sie den
nameals ein erforderliches Attribut (auch wenn es das nicht ist). Wenn keine Bezeichnung angegeben ist odernameleer ist, wird der Wert der Eingabe nicht mit dem Formular gesendet! (Deaktivierte Steuerelemente, nicht aktivierte Radiobuttons, nicht aktivierte Checkboxen und Zurücksetzen-Schaltflächen werden ebenfalls nicht gesendet.)Es gibt zwei Sonderfälle:
_charset_: Wenn alsnameeines<input>-Elements vom Typ hidden verwendet, wird der Wert des Eingabefeldes automatisch vom Benutzeragent auf die zum Senden des Formulars verwendete Zeichenkodierung gesetzt.isindex: Aus historischen Gründen ist der Nameisindexnicht erlaubt.
Das
name-Attribut schafft ein einzigartiges Verhalten für Radiobuttons.Nur ein Radiobutton innerhalb einer gleichnamigen Gruppe aus Radiobuttons kann gleichzeitig aktiviert sein. Wenn irgendein Radiobutton in dieser Gruppe ausgewählt wird, wird jeder derzeit aktivierte Radiobutton in derselben Gruppe automatisch deselektiert. Der Wert dieses einen aktivierten Radiobuttons wird mit dem Namen gesendet, wenn das Formular übermittelt wird.
Wenn in eine Serie von gleichnamigen Radiobuttons getabt wird, falls einer aktiviert ist, wird dieser den Fokus erhalten. Wenn sie nicht in Quellcode-Reihenfolge gruppiert sind, wenn einer aus der Gruppe aktiviert ist, beginnt das Tabben in die Gruppe, wenn der erste in der Gruppe erreicht wird, wobei alle aktuellen deaktivierten übersprungen werden. Anders gesagt, wenn einer aktiviert ist, wird das Tabben die nicht aktivierten Radiobuttons in der Gruppe überspringen. Wenn keiner aktiviert ist, erhält die Radiobutton-Gruppe den Fokus, wenn der erste Button in der Gruppe mit demselben Namen erreicht wird.
Sobald einer der Radiobuttons in einer Gruppe den Fokus hat, erfolgt die Navigation durch die Pfeiltasten durch alle Radiobuttons des gleichen Namens, auch wenn die Radiobuttons im Quellcode nicht zusammengefasst sind.
Wenn einem Eingabeelement ein
namezugewiesen wird, wird dieser Name zu einem Eigentum des eigentlichen FormularelementsHTMLFormElement.elements-Eigenschaft. Wenn Sie eine Eingabe mit dem Namenguestund eine andere mit dem Namenhat-sizehaben, kann der folgende Code verwendet werden:jslet form = document.querySelector("form"); let guestName = form.elements.guest; let hatSize = form.elements["hat-size"];Wenn dieser Code ausgeführt wurde, wird
guestNamedasHTMLInputElementfür das Gastfeld sein, undhatSizedas Objekt für das Hutgrößenfeld.Warnung: Vermeiden Sie es, Formularelementen einen
namezu geben, der einer integrierten Eigenschaft des Formulars entspricht, da Sie damit die vordefinierte Eigenschaft oder Methode mit diesem Verweis auf das entsprechende Eingabefeld überschreiben. pattern-
Gültig für
text,search,url,tel,email, undpassword, wird daspattern-Attribut verwendet, um einen regulären Ausdruck zu kompilieren, den dervalueder Eingabe erfüllen muss, damit der Wert die Einschränkungsvalidierung besteht. Es muss ein gültiger JavaScript-Regulärer Ausdruck sein, wie er vomRegExpTyp verwendet wird, und im Leitfaden zu regulären Ausdrücken dokumentiert ist. Vorwärtsslashs sollten nicht um den Mustertext angegeben werden. Beim Kompilieren des regulären Ausdrucks:- Das Muster wird implizit mit
^(?:und)$umschlossen, so dass die Übereinstimmung auf den gesamten Eingabewert erforderlich ist, d.h.^(?:<pattern>)$. - Das
'v'Flag wird spezifiziert, so dass das Muster als Sequenz von Unicode-Codepunkten behandelt wird und nicht als ASCII.
Wenn das
pattern-Attribut vorhanden, aber nicht angegeben oder ungültig ist, wird kein regulärer Ausdruck angewendet, und dieses Attribut wird vollständig ignoriert. Wenn das pattern Attribut gültig ist und ein nicht-leerer Wert nicht mit dem Muster übereinstimmt, verhindert die Einschränkungsvalidierung die Formularübermittlung. Wenn dasmultiplevorhanden ist, wird der kompilierte reguläre Ausdruck mit jedem durch Komma getrennten Wert abgeglichen.Hinweis: Wenn Sie das
pattern-Attribut verwenden, informieren Sie den Benutzer über das erwartete Format, indem Sie erklärenden Text in der Nähe einfügen. Sie können auch eintitle-Attribut einschließen, um zu erklären, was die Anforderungen sind, um das Muster zu erfüllen; die meisten Browser werden diesen Titel als Tooltip anzeigen. Die sichtbare Erklärung ist für die Barrierefreiheit erforderlich. Der Tooltip ist eine Verbesserung.Siehe Client-seitige Validierung für weitere Informationen.
- Das Muster wird implizit mit
placeholder-
Gültig für
text,search,url,tel,email,password, undnumber, dasplaceholder-Attribut bietet einen kurzen Hinweis für den Benutzer auf welche Art von Informationen im Feld erwartet werden. Es sollte ein Wort oder eine kurze Phrase sein, die einen Hinweis auf die erwartete Art von Daten gibt, anstelle einer Erklärung oder Aufforderung. Der Text darf nicht Wagenrückläufe oder Zeilenumbrüche enthalten. Zum Beispiel, wenn ein Feld erwartet, den Vornamen eines Benutzers zu erfassen und sein Label „Vorname“ ist, könnte ein geeignetes Platzhalter sein „z.B., Mustafa“.Hinweis: Das
placeholder-Attribut ist nicht so semantisch nützlich wie andere Wege, Ihr Formular zu erklären, und kann unerwartete technische Probleme mit Ihrem Inhalt verursachen. Siehe Labels für mehr Informationen. popovertarget-
Verwandelt ein
<input type="button">-Element in einen Popover-Steuerknopf; nimmt die ID des Popover-Elements, das kontrolliert werden soll, als Wert an. Siehe die Popover API-Landeseite für weitere Details. Die Herstellung einer Beziehung zwischen einem Popover und seinem Aufrufknopf mit dempopovertarget-Attribut hat zwei zusätzliche, nützliche Effekte:- Der Browser erstellt eine implizite
aria-details- undaria-expanded-Beziehung zwischen Popover und Aufrufer, und platziert das Popover in einer logischen Position in der Tastaturfokus-Navigationsreihenfolge, wenn es angezeigt wird. Dadurch wird das Popover für Tastatur- und assistive Technologie (AT)-Benutzer zugänglicher (siehe auch Popover-Zugänglichkeitsfunktionen). - Der Browser erstellt eine implizite Ankerverbindung zwischen den beiden, was es sehr bequem macht, Popovers relativ zu ihren Steuerelementen mit CSS-Anker-Positionierung zu positionieren. Siehe Popover-Ankerpositionierung für mehr Details.
- Der Browser erstellt eine implizite
popovertargetaction-
Gibt die Aktion an, die auf ein kontrolliertes Popover-Element von einem
<input type="button">-Steuerelement ausgeführt werden soll. Mögliche Werte sind:"hide"-
Der Knopf wird ein gezeigtes Popover verbergen. Wenn versucht wird, ein bereits verstecktes Popover zu verstecken, wird keine Aktion durchgeführt.
"show"-
Der Knopf wird ein verstecktes Popover zeigen. Wenn versucht wird, ein bereits angezeigtes Popover zu zeigen, wird keine Aktion durchgeführt.
"toggle"-
Der Knopf wird ein Popover zwischen dem Zeigen und dem Verbergen umschalten. Wenn das Popover versteckt ist, wird es angezeigt; wenn das Popover angezeigt wird, wird es versteckt. Wenn
popovertargetactionweggelassen wird, ist"toggle"die standardmäßige Aktion, die vom Steuerknopf durchgeführt wird.
readonly-
Ein booleanes Attribut, das, wenn vorhanden, angibt, dass der Benutzer den Wert der Eingabe nicht bearbeiten soll. Das
readonly-Attribut wird von den Eingabetypentext,search,url,tel,email,date,month,week,time,datetime-local,number, undpasswordunterstützt.Siehe das HTML-Attribut:
readonlyfür mehr Informationen. required-
requiredist ein booleanes Attribut, das, wenn vorhanden, angibt, dass der Benutzer einen Wert für die Eingabe angeben muss, bevor das dazugehörige Formular eingereicht werden kann. Dasrequired-Attribut wird von den Ausgabetypentext,search,url,tel,email,date,month,week,time,datetime-local,number,password,checkbox,radio, undfileunterstützt.Siehe Client-seitige Validierung und das HTML-Attribut:
requiredfür mehr Informationen. size-
Gültig für
email,password,tel,url, undtext, dassize-Attribut spezifiziert, wie viel der Eingabe gezeigt wird. Erzeugt im Wesentlichen dasselbe Ergebnis wie das Setzen der CSS-width-Eigenschaft mit einigen Besonderheiten. Die tatsächliche Einheit des Wertes hängt vom Eingabetyp ab. Fürpasswordundtextist es eine Anzahl von Zeichen (oderem-Einheiten) mit einem Standardwert von20, und für andere sind es Pixel (oderpx-Einheiten). CSSwidthhat Vorrang vor demsize-Attribut. src-
Nur gültig für den
image-Button istsrceine Zeichenfolge, die die URL der Bilddatei angibt, die dargestellt werden soll, um den grafischen Submit-Button anzuzeigen. Siehe den image-Eingabetyp. step-
Gültig für
date,month,week,time,datetime-local,number, undrange, dasstepAttribut ist eine Zahl, die die Granularität, der der Wert entsprechen muss, angibt. Nur Werte, die eine ganze Anzahl von Schritten vom Schritt-Basiswert entfernt sind, sind gültig. Der Schritt-Basis istmin, wenn angegeben,valueandernfalls oder0, wenn keiner vorhanden ist (außerweek, das einen standardmäßigen Schritt-Basis von −259,200,000 hat, was dem Beginn von Woche1970-W01entspricht).Wenn nicht explizit angegeben:
stepist standardmäßig 1 fürnumberundrange.- Jeder Date/Time Eingabetyp hat einen standardmäßigen
step-Wert, der für den Typ geeignet ist; siehe die individuellen Eingabeseiten:date,datetime-local,month,time, undweek.
Der Wert muss eine positive Zahl sein – ganze Zahl oder Gleitkommazahl – oder der spezielle Wert
any, was bedeutet, dass keine Schritte impliziert sind und jeder Wert erlaubt ist (unter Ausschluss anderer Einschränkungen, wieminundmax).Zum Beispiel, wenn Sie
<input type="number" min="10" step="2">haben, dann ist jede gerade Zahl,10oder größer, gültig. Wenn nicht festgelegt wird,<input type="number">, ist jede ganze Zahl gültig, aber Fließkommazahlen (wie4.2) sind nicht gültig, weilstepstandardmäßig1ist. Damit4.2gültig ist, hättestepaufany, 0.1, 0.2 gesetzt werden müssen oder dermin-Wert hätte eine Zahl sein müssen, die mit.2endet, wie<input type="number" min="-5.2">.Hinweis: Wenn die durch den Benutzer eingegebenen Daten nicht mit der Schritt-Konfiguration übereinstimmen, wird der Wert in der Einschränkungsvalidierung als ungültig betrachtet und das
:invalid-Pseudoklasse wird übereinstimmen.Siehe Client-seitige Validierung für mehr Informationen.
switchExperimentell Nicht standardisiert-
Nur gültig für
checkboxEingaben,switchist ein booleanes Attribut, das angibt, ob die Checkbox-Eingabe als Schalter dargestellt werden soll.Hinweis: Dieses Attribut ist noch experimentell und hat begrenzte Browserunterstützung. Das Attribut wird auf nicht unterstützten Browsern ignoriert.
tabindex-
Globales Attribut, das für alle Elemente gültig ist, einschließlich aller Eingabetypen, ein ganzzahliges Attribut, das anzeigt, ob das Element den Eingabefokus erhalten kann (fokussierbar ist), wenn es an der sequentiellen Keyboard-Navigation teilnehmen soll. Da alle Eingabetypen mit Ausnahme von Eingaben vom Typ hidden fokussierbar sind, sollte dieses Attribut nicht auf Formular-Steuerelementen verwendet werden, da dies erfordern würde, dass die Fokusreihenfolge für alle Elemente im Dokument verwaltet wird, mit dem Risiko, Gebrauchstauglichkeit und Barrierefreiheit zu beeinträchtigen, wenn es nicht korrekt gemacht wird.
title-
Globales Attribut, das für alle Elemente gültig ist, einschließlich aller Eingabetypen, das einen Text enthält, der beratende Informationen im Zusammenhang mit dem Element darstellt, zu dem es gehört. Solche Informationen können typischerweise, aber nicht notwendigerweise, dem Benutzer als Tooltip präsentiert werden. Der Titel sollte NICHT als die primäre Erklärung für den Zweck des Formular-Steuerelements verwendet werden. Stattdessen verwenden Sie das
<label>-Element mit einemfor-Attribut, das auf das Formular-Steuerelementidgesetzt ist. Siehe Labels unten. type-
Ein String, der den Typ des darzustellenden Steuerelements angibt. Um beispielsweise eine Checkbox zu erstellen, wird ein Wert von
checkboxverwendet. Wenn weggelassen (oder ein unbekannter Wert angegeben wird), wird der Eingabetyptextverwendet, was ein Klartext-Eingabefeld erstellt.Erlaubte Werte werden unter Eingabetypen oben aufgelistet.
value-
Der Wert des Eingabefeldes. Wenn im HTML festgelegt, ist dies der anfängliche Wert, und kann von da an jederzeit geändert oder durch JavaScript abgerufen werden, um die entsprechende
HTMLInputElement-Eigenschaft auf den Wert zuzugreifen. Dasvalue-Attribut ist immer optional, sollte aber als obligatorisch betrachtet werden fürcheckbox,radio, undhidden. width-
Nur gültig für den
image-Button ist diewidthdie Breite der Bilddatei, die dargestellt werden soll, um den grafischen Submit-Button anzuzeigen. Siehe den image-Eingabetyp.
Nicht standardisierte Attribute
Die folgenden nicht standardisierten Attribute sind auch in einigen Browsern verfügbar. Generell sollten Sie vermeiden, sie zu verwenden, es sei denn, es ist unvermeidlich.
| Attribut | Beschreibung |
|---|---|
incremental |
Ob wiederholte [`search`](/de/docs/Web/API/HTMLInputElement/search_event)-Ereignisse gesendet werden sollen, um Live-Suchergebnisse zu aktualisieren, während der Benutzer noch den Wert des Feldes bearbeitet. Nur WebKit und Blink (Safari, Chrome, Opera, usw.). |
mozactionhint
Veraltet
|
Ein String, der anzeigt, welche Art von Aktion ausgeführt wird, wenn der Benutzer die Enter oder Return-Taste drückt, während er das Feld bearbeitet; dies wird verwendet, um eine geeignete Beschriftung für diese Taste auf einer virtuellen Tastatur zu bestimmen. Da dieses Attribut veraltet ist, verwenden Sie stattdessen |
orient |
Setzt die Ausrichtung des Range-Schiebereglers. Nur Firefox. |
results |
Die maximale Anzahl an Elementen, die in der Dropdown-Liste der vorherigen Suchanfragen angezeigt werden sollen. Nur Safari. |
webkitdirectory
|
Ein booleanes Attribut, das angibt, ob nur das Auswählen von Verzeichnissen (oder Verzeichnissen, wenn multiple ebenfalls vorhanden ist) erlaubt sein soll.
|
incrementalNicht standardisiert-
Das boolesche Attribut
incrementalist eine WebKit- und Blink-Erweiterung (daher unterstützt von Safari, Opera, Chrome usw.), die, wenn vorhanden, den Benutzeragent dazu auffordert, die Eingabe als Live-Suche zu verarbeiten. Während der Benutzer den Wert des Feldes bearbeitet, sendet der Benutzeragentsearch-Ereignisse an dasHTMLInputElement-Objekt, das das Suchfeld repräsentiert. Dadurch kann Ihr Code die Suchergebnisse in Echtzeit aktualisieren, während der Benutzer die Suche bearbeitet.Wenn
incrementalnicht spezifiziert ist, wird dassearch-Ereignis nur gesendet, wenn der Benutzer ausdrücklich eine Suche initiiert (z.B. durch Drücken der Enter- oder Return-Taste, während das Feld bearbeitet wird).Das
search-Ereignis ist so rate-limitiert, dass es nicht häufiger gesendet wird als ein implementierungsdefinierter Intervall. orientNicht standardisiert-
Ähnlich wie die nicht standardisierte CSS-Eigenschaft -moz-orient, die die
<progress>und<meter>-Elemente betrifft, definiert dasorient-Attribut die Ausrichtung des Range-Schiebereglers. Werte umfassenhorizontal, was bedeutet, dass der Range horizontal gerendert wird, undvertical, wo der Range vertikal gerendert wird. Siehe Erstellen von vertikalen Formularsteuerelementen für einen modernen Ansatz zur Erstellung von vertikalen Formularsteuerelementen. resultsNicht standardisiert-
Das
results-Attribut, das nur von Safari unterstützt wird, ist ein numerischer Wert, der es Ihnen erlaubt, die maximale Anzahl von Einträgen zu überschreiben, die in der nativ bereitgestellten Dropdown-Liste der vorhergehenden Suchanfragen des<input>-Elements angezeigt werden soll.Der Wert muss eine nicht-negative Dezimalzahl sein. Wenn nicht bereitgestellt oder ein ungültiger Wert angegeben wird, wird die standardmäßige maximale Anzahl an Einträgen des Browsers verwendet.
webkitdirectoryNicht standardisiert-
Das Boolean
webkitdirectory-Attribut, wenn vorhanden, gibt an, dass nur Verzeichnisse im Dateiauswahl-Interface vom Benutzer ausgewählt werden dürfen. SieheHTMLInputElement.webkitdirectoryfür zusätzliche Details und Beispiele.Obwohl ursprünglich nur für WebKit-basierte Browser implementiert, ist
webkitdirectoryauch in Microsoft Edge sowie Firefox 50 und später verwendbar. Jedoch, obwohl es eine relativ breite Unterstützung hat, ist es immer noch nicht standardisiert und sollte nicht verwendet werden, es sei denn, es gibt keine Alternative.
Methoden
Die folgenden Methoden werden von der HTMLInputElement-Schnittstelle bereitgestellt, die <input>-Elemente im DOM darstellt. Außerdem stehen die Methoden zur Verfügung, die von den übergeordneten Schnittstellen HTMLElement, Element, Node und EventTarget spezifiziert sind.
checkValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht; andernfalls wirdfalsezurückgegeben und eininvalid-Ereignis am Element ausgelöst. reportValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht; andernfalls wirdfalsezurückgegeben, eininvalid-Ereignis am Element ausgelöst, und (wenn das Ereignis nicht abgebrochen wird) das Problem dem Benutzer gemeldet. select()-
Wählt den gesamten Inhalt des
<input>-Elements aus, wenn der Inhalt des Elements auswählbar ist. Bei Elementen ohne auswählbaren Textinhalt (wie einem visuellen Farbwähler oder einem Kalenderdateneingabefeld) hat diese Methode keine Wirkung. setCustomValidity()-
Setzt eine benutzerdefinierte Nachricht, die angezeigt wird, wenn der Wert des Eingabeelements nicht gültig ist.
setRangeText()-
Setzt den Inhalt des angegebenen Zeichenbereichs im Eingabeelement auf einen bestimmten String. Ein
selectMode-Parameter steht zur Verfügung, um zu steuern, wie der bestehende Inhalt beeinflusst wird. setSelectionRange()-
Wählt den angegebenen Zeichenbereich innerhalb eines Texteingabeelements aus. Macht nichts für Eingaben, die nicht als Texteingabefelder dargestellt werden.
showPicker()-
Zeigt den Browserwähler für das Eingabeelement an, der normalerweise beim Auswählen des Elements angezeigt wird, aber durch einen Tastendruck oder eine andere Benutzerinteraktion ausgelöst wird.
stepDown()-
Verringert den Wert einer numerischen Eingabe standardmäßig um eins oder um die angegebene Anzahl von Einheiten.
stepUp()-
Erhöht den Wert einer numerischen Eingabe um eins oder um die angegebene Anzahl von Einheiten.
CSS
Da Eingaben ersetzte Elemente sind, besitzen sie einige Funktionen, die für Nicht-Formularelemente nicht zutreffen. Es gibt CSS-Selektoren, die speziell Formularelemente basierend auf ihren UI-Funktionen, auch bekannt als UI-Pseudoklassen, ansprechen können. Das Eingabeelement kann auch anhand des Typs mit Attributselektoren angesprochen werden. Einige Eigenschaften sind ebenfalls besonders nützlich.
UI-Pseudoklassen
| Pseudoklasse | Beschreibung |
|---|---|
:enabled |
Jedes aktuell aktivierbare Element, das fokussiert oder gewählt werden kann (geklickt, eingegeben usw.) und auch einen deaktivierten Zustand hat, bei dem es nicht aktiviert oder fokussiert werden kann. |
:disabled |
Jedes derzeit deaktivierte Element, das einen aktivierten Zustand hat, was bedeutet, dass es ansonsten aktiviert werden könnte (ausgewählt, angeklickt, eingegeben usw.) oder den Fokus akzeptieren könnte, wenn es nicht deaktiviert wäre. |
:read-only |
Vom Benutzer nicht bearbeitbares Element. |
:read-write |
Vom Benutzer bearbeitbares Element. |
:placeholder-shown |
Element, das derzeit placeholder-Text anzeigt,
einschließlich <input> und <textarea>-Elementen mit dem placeholder-Attribut, das noch keinen Wert hat.
|
:default |
Formularelemente, die standardmäßig in einer Gruppe verwandter Elemente sind. Entspricht checkbox- und radio-Eingabetypen, die beim Laden oder Rendern der Seite markiert wurden. |
:checked |
Entspricht checkbox- und radio-Eingabetypen, die derzeit markiert sind (und dem <option> in einem <select>, das derzeit ausgewählt ist).
|
:indeterminate |
checkbox-Elemente, deren unbestimmte Eigenschaft von JavaScript auf true gesetzt ist, radio-Elemente, wenn alle Radiobuttons mit demselben Namen in der Form nicht markiert sind, und <progress>-Elemente in einem unbestimmten Zustand.
|
:valid |
Formularelemente, auf die Prüfungen angewendet werden können und die aktuell gültig sind. |
:invalid |
Formularelemente, auf die Prüfungen angewendet werden und die derzeit nicht gültig sind. Entspricht einem Formularelement, dessen Wert die durch seine Attribute festgelegten Anforderungen wie required, pattern, step und max nicht erfüllt.
|
:in-range |
Eine nicht leere Eingabe, deren aktueller Wert innerhalb der durch die min- und max-Attribute und den step festgelegten Bereichsgrenzen liegt.
|
:out-of-range |
Eine nicht leere Eingabe, deren aktueller Wert NICHT innerhalb der durch die min- und max-Attribute festgelegten Bereichsgrenzen liegt oder die nicht den step-Anforderungen entspricht.
|
:required |
<input>, <select> oder <textarea>-Elemente, die das required-Attribut gesetzt haben.
Entspricht nur Elementen, die erforderlich sein können.
Das Attribut, das bei einem Element enthalten ist, das nicht erforderlich sein kann, führt nicht zu einer Übereinstimmung.
|
:optional |
<input>, <select> oder <textarea>-Elemente, die NICHT das required-Attribut gesetzt haben.
Entspricht keine Elementen, die nicht erforderlich sein können.
|
:blank |
<input> und <textarea>-Elemente, die derzeit keinen Wert haben.
|
:user-invalid |
Ähnlich wie :invalid, wird jedoch beim Verlassen des Schwerpunktbereichs aktiviert. Entspricht ungültigen Eingaben, jedoch nur nach der Benutzerinteraktion, z. B. durch Fokussierung der Steuerung, das Verlassen der Steuerung oder den Versuch, das Formular mit der ungültigen Steuerung zu übermitteln.
|
:open |
<input>-Elemente, die einen Auswahldialog anzeigen, aus dem der Benutzer einen Wert auswählen kann (zum Beispiel <input type="color">) – jedoch nur, wenn das Element im geöffneten Zustand ist, also wenn der Auswahldialog angezeigt wird.
|
Beispiel für Pseudoklassen
Wir können eine Checkbox-Beschriftung basierend darauf, ob die Checkbox aktiviert ist oder nicht, stylen. In diesem Beispiel gestalten wir die color und font-weight der <label>, die direkt nach einer gewählten Eingabe folgt. Wenn das input nicht aktiviert ist, haben wir keine Styles angewendet.
input:checked + label {
color: red;
font-weight: bold;
}
Attributselektoren
Es ist möglich, verschiedene Arten von Formularelementen basierend auf ihrem type mit Attributselektoren zu wählen. CSS-Attributselektoren entsprechen Elementen basierend entweder nur auf dem Vorhandensein eines Attributs oder dem Wert eines gegebenen Attributs.
/* matches a password input */
input[type="password"] {
}
/* matches a form control whose valid values are limited to a range of values */
input[min][max] {
}
/* matches a form control with a pattern attribute */
input[pattern] {
}
::placeholder
Standardmäßig erscheint der Platzhaltertext in einer durchscheinenden oder hellgrauen Farbe. Das ::placeholder-Pseudoelement ist der placeholder-Text der Eingabe. Es kann mit einem eingeschränkten Satz von CSS-Eigenschaften gestylt werden.
::placeholder {
color: blue;
}
Nur der eingeschränkte Satz von CSS-Eigenschaften, die für das ::first-line-Pseudoelement gelten, kann in einer Regel verwendet werden, die ::placeholder in ihrem Selektor verwendet.
caret-color
Eine Eigenschaft, die sich speziell auf Texteingabeelemente bezieht, ist die CSS-Eigenschaft caret-color, mit der Sie die Farbe festlegen können, die verwendet wird, um die Texteingabemarkierung zu zeichnen:
HTML
<label for="textInput">Note the red caret:</label>
<input id="textInput" class="custom" size="32" />
CSS
input.custom {
caret-color: red;
font:
16px "Helvetica",
"Arial",
sans-serif;
}
Ergebnis
field-sizing
Die field-sizing-Eigenschaft ermöglicht es Ihnen, das Größenverhalten von Formulareingaben zu steuern (d.h. sie erhalten standardmäßig eine bevorzugte Größe). Diese Eigenschaft ermöglicht es Ihnen, das Standardverhalten zu überschreiben und Formularelementen zu erlauben, sich in der Größe anzupassen, um ihren Inhalt aufzunehmen.
Diese Eigenschaft wird typischerweise verwendet, um Formulareingabefelder zu erstellen, die ihren Inhalt umschließen und mit der Eingabe von mehr Text wachsen. Dies erfolgt mit Eingabetypen, die direkte Texteingaben akzeptieren (zum Beispiel text und url), Eingabetypen file und <textarea>-Elementen.
object-position und object-fit
In bestimmten Fällen (typischerweise bei nicht-textlichen Eingaben und spezialisierten Schnittstellen) ist das <input>-Element ein ersetztes Element. Wenn es das ist, können Position und Größe des Elements innerhalb seines Rahmens mit den CSS-Eigenschaften object-position und object-fit angepasst werden.
Styling
Für weitere Informationen zum Hinzufügen von Farbe zu Elementen in HTML, siehe:
Siehe auch:
Zusätzliche Funktionen
>Labels
Labels sind notwendig, um unterstützenden Text mit einer <input>-Eingabe zu verknüpfen. Das <label>-Element liefert erklärende Informationen über ein Formularfeld, die immer angemessen sind (abgesehen von jeglichen Layoutproblemen, die Sie haben). Es ist nie eine schlechte Idee, ein <label> zu verwenden, um zu erklären, was in eine <input>- oder <textarea>-Eingabe eingegeben werden sollte.
Zugehörige Labels
Die semantische Paarung von <input>- und <label>-Elementen ist nützlich für unterstützende Technologien wie Bildschirmleser. Indem sie mit dem for-Attribut des <label>-Elements kombiniert werden, verbinden Sie das Label mit der Eingabe in einer Weise, die Bildschirmlesern ermöglicht, Eingaben präziser zu beschreiben.
Es reicht nicht aus, einfachen Text neben dem <input>-Element zu haben. Vielmehr erfordert die Usability und Barrierefreiheit die Einbeziehung entweder impliziter oder expliziter <label>:
<!-- inaccessible -->
<p>Enter your name: <input id="name" type="text" size="30" /></p>
<!-- implicit label -->
<p>
<label>Enter your name: <input id="name" type="text" size="30" /></label>
</p>
<!-- explicit label -->
<p>
<label for="name">Enter your name: </label>
<input id="name" type="text" size="30" />
</p>
Das erste Beispiel ist nicht barrierefrei: keine Beziehung besteht zwischen dem Prompt und dem <input>-Element.
Zusätzlich zu einem zugänglichen Namen bietet das Label eine größere 'Treffer'fläche für Maus- und Touchscreen-Benutzer zum Klicken oder Berühren. Durch das Kombinieren eines <label> mit einem <input> wird durch Klicken auf eines von beiden das <input> fokussiert. Wenn Sie einfachen Text verwenden, um Ihre Eingabe zu "labeln", wird dies nicht passieren. Das Einbeziehen des Prompts als Teil der Aktivierungsfläche für die Eingabe ist hilfreich für Menschen mit motorischen Beeinträchtigungen.
Als Web-Entwickler ist es wichtig, niemals anzunehmen, dass Menschen alles wissen, was wir wissen. Die Vielfalt der Menschen, die das Internet nutzen – und somit auch Ihre Website – garantiert praktisch, dass einige der Besucher Ihrer Website einige Abweichungen in Denkprozessen und/oder Umständen haben werden, die dazu führen, dass sie Ihre Formulare sehr unterschiedlich von Ihnen interpretieren, ohne klare und richtig präsentierte Labels.
Platzhalter sind nicht zugänglich
Das Attribut placeholder ermöglicht es Ihnen, Text anzugeben, der im Inhaltbereich des <input>-Elements angezeigt wird, wenn es leer ist. Der Platzhalter sollte niemals erforderlich sein, um Ihre Formulare zu verstehen. Er ist kein Label und sollte nicht als Ersatz verwendet werden, weil er es nicht ist. Der Platzhalter wird verwendet, um einen Hinweis darauf zu geben, wie ein eingegebener Wert aussehen sollte, nicht eine Erklärung oder ein Prompt.
Nicht nur ist der Platzhalter für Bildschirmleser nicht zugänglich, sondern er verschwindet, sobald der Benutzer Text in das Formularelement eingibt oder wenn das Formularelement bereits einen Wert hat. Browser mit automatischen Seitenübersetzungsfunktionen überspringen möglicherweise Attribute während der Übersetzung, was bedeutet, dass der placeholder möglicherweise nicht übersetzt wird.
Hinweis:
Verwenden Sie das placeholder-Attribut nicht, wenn Sie es vermeiden können. Wenn Sie ein <input>-Element labeln müssen, verwenden Sie das <label>-Element.
Validierung auf Client-Seite
Warnung:
Die Validierung auf Client-Seite ist nützlich, garantiert jedoch nicht, dass der Server gültige Daten erhält. Wenn die Daten in einem bestimmten Format vorliegen müssen, überprüfen Sie es immer auch auf der Server-Seite und geben Sie eine 400 HTTP-Antwort zurück, wenn das Format ungültig ist.
Zusätzlich zur Verwendung von CSS zum Stylen von Eingaben basierend auf den UI-Staaten :valid oder :invalid basierend auf dem aktuellen Zustand jeder Eingabe, wie im Abschnitt UI-Pseudoklassen oben erwähnt, bietet der Browser eine Validierung auf Client-Seite bei (versuchter) Formularübermittlung. Bei der Formularübermittlung, wenn es ein Formularelement gibt, das die Validierungsanforderungen nicht erfüllt, zeigt der unterstützende Browser eine Fehlermeldung beim ersten ungültigen Formularelement an; eine Standardmeldung basierend auf dem Fehlertyp oder eine von Ihnen festgelegte Meldung.
Einige Eingabetypen und andere Attribute setzen Grenzen, welche Werte für eine bestimmte Eingabe gültig sind. Zum Beispiel bedeutet <input type="number" min="2" max="10" step="2">, dass nur die Zahlen 2, 4, 6, 8 oder 10 gültig sind. Es könnten mehrere Fehler auftreten, darunter ein rangeUnderflow-Fehler, wenn der Wert kleiner als 2 ist, rangeOverflow bei größerem Wert als 10, stepMismatch, wenn der Wert eine Zahl zwischen 2 und 10 ist, aber keine gerade ganze Zahl (entspricht nicht den Anforderungen des step-Attributs), oder typeMismatch, wenn der Wert keine Zahl ist.
Für die Eingabetypen, deren Wertebereich periodisch ist (d.h. beim höchsten möglichen Wert werden die Werte zum Anfang zurückgesetzt, anstatt zu enden), ist es möglich, dass die Werte der max- und min-Eigenschaften umgekehrt sind, was darauf hinweist, dass der Bereich der erlaubten Werte bei min beginnt, an den niedrigsten möglichen Wert zurückspringt und dann weitergeht, bis max erreicht ist. Dies ist besonders nützlich für Datum und Uhrzeiten, z. B. wenn Sie den Bereich von 20 Uhr bis 8 Uhr erlauben möchten:
<input type="time" min="20:00" max="08:00" name="overnight" />
Bestimmte Attribute und deren Werte können zu einem spezifischen Fehler ValidityState führen:
| Attribut | Relevante Eigenschaft | Beschreibung |
|---|---|---|
max |
[`validityState.rangeOverflow`](/de/docs/Web/API/ValidityState/rangeOverflow) |
Tritt auf, wenn der Wert größer als der maximale Wert ist, der durch das max-Attribut definiert wird.
|
maxlength |
[`validityState.tooLong`](/de/docs/Web/API/ValidityState/tooLong) |
Tritt auf, wenn die Anzahl der Zeichen größer ist als die durch die maxlength-Eigenschaft erlaubte Zahl.
|
min |
[`validityState.rangeUnderflow`](/de/docs/Web/API/ValidityState/rangeUnderflow) |
Tritt auf, wenn der Wert kleiner ist als der minimale Wert, der durch das min-Attribut definiert wird.
|
minlength |
[`validityState.tooShort`](/de/docs/Web/API/ValidityState/tooShort) |
Tritt auf, wenn die Anzahl der Zeichen kleiner ist als die durch die minlength-Eigenschaft geforderte Zahl.
|
pattern |
[`validityState.patternMismatch`](/de/docs/Web/API/ValidityState/patternMismatch) |
Tritt auf, wenn ein Musterattribut mit einem gültigen regulären Ausdruck enthalten ist und der value nicht übereinstimmt.
|
required |
[`validityState.valueMissing`](/de/docs/Web/API/ValidityState/valueMissing) |
Tritt auf, wenn das required-Attribut vorhanden ist, aber der Wert null ist oder das Radio- oder Checkbox nicht markiert ist.
|
step |
[`validityState.stepMismatch`](/de/docs/Web/API/ValidityState/stepMismatch) |
Der Wert entspricht nicht dem Schrittinkrement. Das Standardinkrement ist 1, sodass nur ganze Zahlen für type="number" gültig sind, wenn der Schritt nicht enthalten ist. step="any" wird diesen Fehler niemals auslösen.
|
type |
[`validityState.typeMismatch`](/de/docs/Web/API/ValidityState/typeMismatch) |
Tritt auf, wenn der Wert nicht vom richtigen Typ ist, z. B. wenn eine E-Mail kein @ enthält oder eine URL kein Protokoll.
|
Wenn ein Formularelement nicht das required-Attribut hat, ist kein Wert oder ein leerer String nicht ungültig. Selbst wenn die oben genannten Attribute vorhanden sind, führt ein leerer String (außer bei required) zu keinem Fehler.
Wir können Grenzen festlegen, welche Werte wir akzeptieren, und unterstützende Browser werden diese Formularwerte nativ validieren und den Benutzer darauf hinweisen, wenn ein Fehler bei der Übermittlung des Formulars auftritt.
Zusätzlich zu den in der Tabelle oben beschriebenen Fehlern enthält die validityState-Schnittstelle die booleschen schreibgeschützten Eigenschaften badInput, valid und customError. Das Validitätsobjekt umfasst:
validityState.valueMissingvalidityState.typeMismatchvalidityState.patternMismatchvalidityState.tooLongvalidityState.tooShortvalidityState.rangeUnderflowvalidityState.rangeOverflowvalidityState.stepMismatchvalidityState.badInputvalidityState.validvalidityState.customError
Für jede dieser booleschen Eigenschaften gibt ein Wert von true an, dass der angegebene Grund, warum die Validierung fehlgeschlagen sein könnte, zutrifft, mit Ausnahme der Eigenschaft valid, die true ist, wenn der Wert des Elements alle Einschränkungen erfüllt.
Wenn ein Fehler vorliegt, werden unterstützende Browser den Benutzer sowohl darauf hinweisen als auch verhindern, dass das Formular übermittelt wird. Ein Wort der Vorsicht: Wenn eine benutzerdefinierte Fehlermeldung auf einen wahren Wert gesetzt ist (irgendein Wert außer dem leeren String oder null), wird die Übermittlung des Formulars verhindert. Wenn keine benutzerdefinierte Fehlermeldung vorhanden ist und keine der anderen Eigenschaften true zurückgibt, wird valid true sein und das Formular kann übermittelt werden.
function validate(input) {
let validityState = input.validity;
if (validityState.valueMissing) {
input.setCustomValidity("A value is required");
} else if (validityState.rangeUnderflow) {
input.setCustomValidity("Your value is too low");
} else if (validityState.rangeOverflow) {
input.setCustomValidity("Your value is too high");
} else {
input.setCustomValidity("");
}
}
Die letzte Zeile, die die benutzerdefinierte Fehlermeldung auf den leeren String setzt, ist entscheidend. Wenn der Benutzer einen Fehler macht und die Gültigkeit gesetzt ist, wird es nicht übermitteln, selbst wenn alle Werte gültig sind, bis die Meldung null ist.
Beispiel für eine benutzerdefinierte Validierungsfehlermeldung
Wenn Sie eine benutzerdefinierte Fehlermeldung anzeigen möchten, wenn ein Feld nicht validiert, müssen Sie die Constraint Validation API verwenden, die für <input> (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 grundlegenden HTML-Formularvalidierungsfunktionen werden dies dazu bringen, eine Standardfehlermeldung anzuzeigen, wenn Sie versuchen, das Formular mit entweder einem nicht gültig ausgefüllten oder einem Wert, der das pattern nicht entspricht, zu übermitteln.
Wenn Sie stattdessen benutzerdefinierte Fehlermeldungen anzeigen möchten, könnten Sie JavaScript wie folgt verwenden:
const nameInput = document.querySelector("input");
nameInput.addEventListener("input", () => {
nameInput.setCustomValidity("");
nameInput.checkValidity();
});
nameInput.addEventListener("invalid", () => {
if (nameInput.value === "") {
nameInput.setCustomValidity("Enter your username!");
} else {
nameInput.setCustomValidity(
"Usernames can only contain upper and lowercase letters. Try again!",
);
}
});
Das Beispiel wird wie folgt angezeigt:
Kurz gesagt:
- Wir überprüfen den gültigen Zustand des Eingabeelements jedes Mal, wenn sich sein Wert ändert, indem wir die
checkValidity()-Methode über deninput-Ereignishandler ausführen. - Wenn der Wert ungültig ist, wird ein
invalid-Ereignis ausgelöst, und dieinvalid-Ereignishandlerfunktion wird ausgeführt. Innerhalb dieser Funktion ermitteln wir mit einemif ()-Block, ob der Wert ungültig ist, weil er leer ist oder weil er nicht das Muster entspricht, und setzen eine benutzerdefinierte Fehlermeldung. - Infolgedessen, wenn der Eingabewert ungültig ist, wenn der Sende-Button gedrückt wird, wird eine der benutzerdefinierten Fehlermeldungen angezeigt.
- Wenn er gültig ist, wird er erwartungsgemäß übermittelt. Damit dies geschieht, muss die benutzerdefinierte Gültigkeit durch den Aufruf von
setCustomValidity()mit einem leeren String-Wert aufgehoben werden. Daher tun wir dies jedes Mal, wenn dasinput-Ereignis ausgelöst wird. Wenn Sie dies nicht tun und eine benutzerdefinierte Gültigkeit vorhergesetzt wurde, wird die Eingabe als ungültig registriert, selbst wenn sie derzeit einen gültigen Wert bei der Übermittlung enthält.
Hinweis: Validieren Sie Eingabebeschränkungen immer sowohl auf der Client- als auch auf der Server-Seite. Constraint-Validierung ersetzt nicht die Notwendigkeit der Validierung auf der Server-Seite. Ungültige Werte können immer noch von älteren Browsern oder bösen Akteuren gesendet werden.
Hinweis:
Firefox unterstützte in vielen Versionen ein proprietäres Fehlerattribut — x-moz-errormessage — , das es Ihnen ermöglichte, benutzerdefinierte Fehlermeldungen auf ähnliche Weise einzustellen. Dies wurde mit Version 66 entfernt (siehe Firefox Bug 1513890).
Lokalisierung
Die zulässigen Eingaben für bestimmte <input>-Typen hängen von der Lokalisierung ab. In einigen Lokalen ist 1.000,00 eine gültige Zahl, während in anderen Lokalen die gültige Art, diese Zahl einzugeben, 1.000,00 ist.
Firefox verwendet die folgenden Heuristiken, um das Lokale zur Validierung der Benutzereingabe zu bestimmen (zumindest für type="number"):
- Versuchen Sie, die Sprache zu verwenden, die durch ein
lang/xml:lang-Attribut am Element oder einem seiner Elternteile angegeben ist. - Versuchen Sie, die durch einen
Content-Language-HTTP-Header angegebene Sprache zu verwenden. Oder, - Wenn keine angegeben wurde, verwenden Sie die Spracheinstellung des Browsers.
Barrierefreiheit
>Labels
Beim Einschluss von Eingaben ist es ein Erfordernis zur Barrierefreiheit, Labels hinzuzufügen. Dies ist notwendig, damit diejenigen, die unterstützende Technologien nutzen, erkennen können, wofür die Eingabe gedacht ist. Außerdem gibt das Klicken oder Berühren eines Labels dem Label zugehörigen Formularsteuerelement den Fokus. Dies verbessert sowohl die Barrierefreiheit als auch die Benutzerfreundlichkeit für sehende Benutzer, indem es den Bereich vergrößert, auf den ein Benutzer klicken oder tippen kann, um das Steuerelement zu aktivieren. Dies ist besonders nützlich (und sogar notwendig) für Radiobuttons und Checkboxen, die klein sind. Weitere Informationen zu Labels im Allgemeinen finden Sie unter Labels.
Das Folgende ist ein Beispiel dafür, wie man das <label> mit einem <input>-Element im obigen Stil assoziiert. Sie müssen dem <input> ein id-Attribut geben. Das <label> benötigt dann ein for-Attribut, dessen Wert identisch mit der id der Eingabe ist.
<label for="peas">Do you like peas?</label>
<input type="checkbox" name="peas" id="peas" />
Größe
Interaktive Elemente wie Formulareingabefelder sollten eine Fläche groß genug bieten, damit es einfach ist, sie zu aktivieren. Dies hilft verschiedenen Menschen, einschließlich Menschen mit motorischen Kontrollproblemen und Menschen, die nicht präzise Eingabegeräte wie einen Stift oder Finger verwenden. Eine minimale Interaktionsgröße von 44×44 CSS-Pixel wird empfohlen.
Technische Zusammenfassung
| Inhaltskategorien |
Flussinhalt, gelistet, übermittelbar, zurücksetzbar, formularbezogenes Element,
phrasierter Inhalt. Wenn der type nicht hidden ist, dann labelbares Element, tastbarer Inhalt.
|
|---|---|
| Erlaubter Inhalt | Keiner; es ist ein leeres Element. |
| Tag-Auslassung | Muss ein Start-Tag haben und darf keinen End-Tag haben. |
| Erlaubte Eltern | Jedes Element, das Phrasinhalte akzeptiert. |
| Implizierte ARIA-Rolle |
|
| Erlaubte ARIA-Rollen |
|
| DOM-Schnittstelle | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
Spezifikationen
| Specification |
|---|
| HTML> # the-input-element> |