<input>: Das HTML-Input-Element
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
* Some parts of this feature may have varying levels of support.
Das <input>-HTML-Element wird verwendet, um interaktive Steuerelemente für webbasierte Formulare zu erstellen, um Daten vom Benutzer zu erfassen. Eine Vielzahl von Eingabedatentypen und Steuerungswidgets stehen zur Verfügung, abhängig vom Gerät und User-Agent. Das <input>-Element ist eines der mächtigsten und komplexesten Elemente in HTML, aufgrund der Vielzahl an 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
Die Funktionsweise eines <input> Elements variiert erheblich, abhängig vom Wert seines type-Attributs, weshalb die verschiedenen Typen auf separaten Referenzseiten behandelt werden. Wird dieses Attribut nicht angegeben, wird der Standardtyp text verwendet.
Die verfügbaren Typen sind wie folgt:
| Typ | Beschreibung | Grundlegende Beispiele |
|---|---|---|
| button |
Eine Schaltfläche ohne Standardverhalten, die den Wert des value-Attributs anzeigt, standardmäßig leer.
|
|
| checkbox | Ein Kontrollkästchen, das einzelne Werte ausgewählt oder abgewählt lassen kann. |
|
| color | Ein Steuerungselement zur Angabe einer Farbe; öffnet einen Farbwähler in unterstützenden Browsern, wenn aktiv. |
|
| date | Ein Steuerungselement zur Eingabe eines Datums (Jahr, Monat, und Tag, ohne Zeit). Öffnet einen Datumsauswähler oder numerische Räder für Jahr, Monat, Tag in unterstützenden Browsern, wenn aktiv. |
|
| datetime-local | Ein Steuerungselement zur Eingabe eines Datums und einer Uhrzeit, ohne Zeitzone. Öffnet einen Datumsauswähler oder numerische Räder für Datum- und Uhrzeitkomponenten in unterstützenden Browsern, wenn aktiv. |
|
Ein Feld zum Bearbeiten einer E-Mail-Adresse. Sieht aus wie eine
text-Eingabe, hat jedoch Validierungsparameter und relevante
Tastaturen in unterstützenden Browsern und Geräten mit dynamischen Tastaturen.
|
|
|
| file |
Ein Steuerungselement, das dem Benutzer erlaubt, eine Datei auszuwählen.
Verwenden Sie das accept-Attribut, um die Typen von Dateien zu definieren, die das Steuerungselement auswählen kann.
|
|
| hidden | Ein Steuerungselement, das nicht angezeigt wird, dessen Wert jedoch an den Server übermittelt wird. In der nächsten Spalte befindet sich ein Beispiel, aber es ist versteckt! | |
| image |
Ein grafischer submit-Button. Zeigt ein Bild an, das durch das src-Attribut definiert wird.
Das alt-Attribut wird angezeigt, wenn das Bild-src fehlt.
|
|
| month | Ein Steuerungselement zur Eingabe eines Monats und Jahres, ohne Zeitzone. |
|
| number | Ein Steuerungselement zur Eingabe einer Zahl. Zeigt einen Spinner an und fügt eine Standardvalidierung hinzu. Zeigt in einigen Geräten mit dynamischen Tastaturen eine numerische Tastatur an. |
|
| password | Ein einzeiliges Textfeld, dessen Wert verdeckt ist. Warnung des Benutzers, wenn die Seite nicht sicher ist. |
|
| radio |
Ein Radiobutton, der es erlaubt, einen einzigen Wert aus mehreren Auswahlmöglichkeiten mit demselben name-Wert auszuwählen.
|
|
| range |
Ein Steuerungselement zur Eingabe einer Zahl, deren exakter Wert nicht wichtig ist.
Wird als Bereichs-Widget angezeigt, das auf den mittleren Wert voreingestellt ist.
Wird in Verbindung mit min und max verwendet, um den Bereich akzeptabler Werte zu definieren.
|
|
| reset | Eine Schaltfläche, die den Inhalt des Formulars auf die Standardwerte zurücksetzt. Nicht empfohlen. |
|
| search | Ein einzeiliges Textfeld zum Eingeben von Suchbegriffen. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. Kann ein Löschen-Symbol in unterstützenden Browsern enthalten, das zum Löschen des Feldes verwendet werden kann. Zeigt ein Suchsymbol anstelle der Eingabetaste auf einigen Geräten mit dynamischen Tastaturen an. |
|
| submit | Eine Schaltfläche, die das Formular abschickt. |
|
| tel | Ein Steuerungselement zur Eingabe einer Telefonnummer. Zeigt eine Telefontastatur in einigen Geräten mit dynamischen Tastaturen an. |
|
| text | Der Standardwert. Ein einzeiliges Textfeld. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. |
|
| time | Ein Steuerungselement zur Eingabe eines Zeitwerts ohne Zeitzone. |
|
| url |
Ein Feld zur Eingabe einer URL. Sieht aus wie eine text-Eingabe, hat jedoch
Validierungsparameter und relevante Tastaturen in unterstützenden Browsern
und Geräten mit dynamischen Tastaturen.
|
|
| week | Ein Steuerungselement zur Eingabe eines Datums bestehend aus einer Wochennummer und einer Jahresnummer ohne Zeitzone. |
|
| Veraltete Werte | ||
datetime
Veraltet
|
Ein Steuerungselement zur Eingabe eines Datums und einer Uhrzeit (Stunde, Minute, Sekunde und Bruchteil einer Sekunde) basierend auf der UTC-Zeitzone. |
|
Attribute
Das <input>-Element ist so mächtig wegen seiner Attribute; das type-Attribut, das oben mit Beispielen beschrieben wurde, ist das wichtigste. Da jedes <input>-Element, unabhängig vom Typ, auf der HTMLInputElement-Schnittstelle basiert, teilen sie sich technisch dasselbe Set von Attributen. In der Realität haben jedoch die meisten Attribute nur Einfluss auf eine spezifische Untergruppe von Eingabetypen. Außerdem hängt die Art und Weise, wie einige Attribute ein <input> beeinflussen, vom Eingabetyp ab, was unterschiedliche Auswirkungen je nach Eingabetyp zur Folge hat.
Dieser Abschnitt enthält eine Tabelle, die alle Attribute mit einer kurzen Beschreibung auflistet. Diese Tabelle wird von einer Liste gefolgt, die jedes Attribut ausführlicher beschreibt, sowie den Eingabetypen, mit denen sie verknüpft sind. Diejenigen, die zu den meisten oder allen Eingabetypen gehören, werden unten ausführlicher definiert. Attribute, die einzigartig für bestimmte Eingabetypen sind—oder Attribute, die bei allen Eingabetypen vorkommen, aber spezielle Verhaltensweisen haben, wenn sie auf einem bestimmten Eingabetyp verwendet werden—werden dagegen auf den Seiten dieser Typen dokumentiert.
Attribute für das <input>-Element schließen die globalen HTML-Attribute ein und zusätzlich:
| Attribut | Typ(en) | Beschreibung |
|---|---|---|
accept |
file |
Hinweis auf erwarteten Dateityp in Dateiupload-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 im eingegebenen Text. |
autocomplete |
alle außer checkbox, radio und Buttons |
Hinweis für die Autofill-Funktion |
capture |
file |
Medienerfassungsmethode in Dateiupload-Steuerelementen |
checked |
checkbox, radio |
Ob das Steuerungselement ausgewählt ist |
colorspace |
color |
Der Farbraum, der für die Auswahl des Farbwertes verwendet werden soll. |
dirname |
hidden, text, search, url, tel, email |
Name des Formularfeldes zur Übermittlung der Richtung des Elements bei der Formularübertragung |
disabled |
alle | Ob das Formularsteuerungselement deaktiviert ist |
form |
alle | Verknüpft das Steuerungselement mit einem Formularelement |
formaction |
image, submit |
URL zur Verwendung bei der Formularübertragung |
formenctype |
image, submit |
Verschlüsselungstyp des Formulardatensatzes zur Verwendung bei der Formularübertragung |
formmethod |
image, submit |
HTTP-Methode zur Verwendung bei der Formularübertragung |
formnovalidate |
image, submit |
Umgeht die Formularsteuerungsvalidierung bei der Formularübertragung |
formtarget |
image, submit |
Browsing-Kontext für die Formularübertragung |
height |
image |
Entsprechend dem height-Attribut für <img>; vertikale Dimension |
list |
alle außer hidden, password, checkbox, radio und Buttons |
Wert des id-Attributs der <datalist> der Autocomplete-Optionen |
max |
date, month, week, time, datetime-local, number, range |
Höchstwert |
maxlength |
text, search, url, tel, email, password |
Maximale Länge (Anzahl von Zeichen) des value-Attributs |
min |
date, month, week, time, datetime-local, number, range |
Mindestwert |
minlength |
text, search, url, tel, email, password |
Minimale Länge (Anzahl von Zeichen) des value-Attributs |
multiple |
email, file |
Boolescher Wert. Ob mehrere Werte erlaubt sind |
name |
alle | Name der Formularsteuerung. Wird mit dem Formular als Bestandteil eines Name/Wert-Paares übermittelt |
pattern |
text, search, url, tel, email, password |
Muster, das der value-Wert entsprechen muss, um gültig zu sein |
placeholder |
text, search, url, tel, email, password, number |
Text, der im Formularsteuerungselement erscheint, wenn kein Wert festgelegt ist |
popovertarget |
button |
Bezeichnet ein <input type="button"> als Steuerungselement für ein Popover-Element |
popovertargetaction |
button |
Gibt die Aktion an, die ein Popover-Steuerungselement ausführen soll |
readonly |
alle außer hidden, range, color, checkbox, radio und Buttons |
Boolescher Wert. Der Wert ist nicht editierbar |
required |
alle außer hidden, range, color und Buttons |
Boolescher Wert. Ein Wert ist erforderlich oder muss markiert sein, damit das Formular übermittelbar ist |
size |
text, search, url, tel, email, password |
Größe des Steuerungselements |
src |
image |
Entsprechend dem src-Attribut für <img>; Adresse der Bildressource |
step |
date, month, week, time, datetime-local, number, range |
Inkrementelle Werte, die gültig sind |
switch |
checkbox |
Ob das Checkbox-Steuerelement als Schalter gerendert werden soll |
type |
alle | Typ der Formularsteuerung |
value |
alle außer image |
Der Wert der Steuerung. Wenn in HTML angegeben, entspricht es dem Anfangswert |
width |
image |
Entsprechend dem width-Attribut für <img> |
Eine Handvoll zusätzlicher nicht standardisierter Attribute werden nach den Beschreibungen der Standardattribute aufgeführt.
Einzelne Attribute
accept-
Gültig nur für den
file-Eingabetyp, definiert dasaccept-Attribut, welche Dateitypen in einemfile-Upload-Steuerelement auswählbar sind. Siehe den file-Eingabetyp. alphaExperimentell-
Gültig nur für den
color-Eingabetyp, ermöglicht dasalpha-Attribut dem Endbenutzer, die Deckkraft der ausgewählten Farbe festzulegen. alt-
Gültig nur für den
image-Button, dasalt-Attribut bietet alternativen Text für das Bild, der angezeigt wird, wenn das Bild-[src](#src) fehlt oder anderweitig nicht geladen werden kann. Siehe den image-Eingabetyp. autocapitalize-
Steuert, ob eingegebener Text automatisch großgeschrieben wird und, wenn ja, in welcher Weise. Siehe den globalen Attribut-Seite
autocapitalizefür mehr Informationen. autocomplete-
(Kein boolesches Attribut!) Das
autocompleteAttribut nimmt als Wert eine durch Leerzeichen getrennte Zeichenkette, die beschreibt, welche Art von Autocomplete-Funktionalität die Eingabe bereitstellen sollte. Eine typische Implementierung von Autocomplete erinnert sich an zuvor in derselben Eingabefeld eingegebene Werte, aber komplexere Formen des Autocomplete können existieren. Beispielsweise könnte ein Browser in die Kontaktliste eines Geräts integrieren, um E-Mail-Adressen in einem E-Mail-Eingabefeld automatisch zu vervollständigen. Sieheautocompletefür zulässige Werte.Das
autocomplete-Attribut ist gültig beihidden,text,search,url,tel,email,date,month,week,time,datetime-local,number,range,colorundpassword. Dieses Attribut hat keine Auswirkungen auf Eingabetypen, die keine numerischen oder Textdaten zurückgeben, ist gültig bei allen Eingabetypen außercheckbox,radio,file, oder irgendeines der Button-Typen.Weitere Informationen finden Sie im
autocomplete-Attribut, einschließlich Informationen zur Passwortsicherheit und wieautocompletebeihiddenleicht anders funktioniert als bei anderen Eingabetypen. autofocus-
Ein Boolesches Attribut, das, wenn vorhanden, anzeigt, dass die Eingabe automatisch den Fokus haben sollte, wenn die Seite geladen ist (oder wenn der das Element enthaltende
<dialog>angezeigt wird).Hinweis: Ein Element mit dem
autofocus-Attribut kann den Fokus erhalten, bevor dasDOMContentLoadedEreignis ausgelöst wird.Nicht mehr als ein Element im Dokument darf das
autofocus-Attribut haben. Wenn es auf mehr als ein Element gesetzt wird, erhält das erste mit dem Attribut den Fokus.Das
autofocus-Attribut kann nicht auf Eingabefeldern des Typshiddenverwendet werden, da versteckte Eingaben nicht fokussiert werden können.Warnung: Das automatische Fokussieren eines Formularsteuerelements kann sehbehinderte Menschen, die Bildschirmlesetechnologie verwenden, und Menschen mit kognitiven Beeinträchtigungen verwirren. Wenn
autofocuszugewiesen ist, "teleportieren" Bildschirmlesegeräte ihre Benutzer ohne Vorwarnung zum Formularsteuerelement.Berücksichtigen Sie bei der Anwendung des
autofocus-Attributs die Barrierefreiheit sorgfältig. Ein automatischer Fokus auf ein Steuerelement kann dazu führen, dass die Seite beim Laden scrollt. Der Fokus kann auch bei einigen Touch-Geräten zu einer Anzeige der virtuellen Tastatur führen. Während ein Bildschirmleser das Label des fokussierten Formularsteuerelements ankündigt, wird der Bildschirmleser nichts vor dem Label ankündigen, und der sehende Benutzer auf einem kleinen Gerät wird gleichermaßen den Kontext von vorhergehendem Inhalt übersehen. capture-
Eingeführt in der HTML Media Capture-Spezifikation und gültig nur für den
file-Eingabetyp, definiert dascapture-Attribut, welches Medium– Mikrofon, Video oder Kamera – verwendet werden soll, um eine neue Datei zur Aufnahme mitfile-Upload-Steuerelement in unterstützenden Szenarien zu erfassen. Siehe den file-Eingabetyp. checked-
Gültig für sowohl
radioals auchcheckboxTypen,checkedist ein Boolesches Attribut. Wenn es bei einemradio-Typ vorhanden ist, zeigt es an, dass dieser Radiobutton der aktuell ausgewählte in der Gruppe von gleichnamigen Radiobuttons ist. Wenn es bei einemcheckbox-Typ vorhanden ist, zeigt es an, dass das Kästchen standardmäßig (wenn die Seite geladen wird) ausgewählt ist. Es zeigt nicht an, ob das Kästchen aktuell ausgewählt ist: wenn sich der Status des Kästchens ändert, spiegelt dieses Inhaltsattribut die Änderung nicht wider. (Nur dasHTMLInputElement'scheckedIDL-Attribut wird aktualisiert.)Hinweis: Anders als andere Eingabesteuerelemente wird der Wert eines Auswahlsfeldes oder Radiobuttons nur dann in den übermittelten Daten aufgenommen, wenn sie
checkedsind. Wenn sie selektiert sind, werden der Name und die Werte der ausgewählten Steuerelemente übermittelt.Beispiel: Wenn ein Kästchen, dessen
namefruitist, denvaluecherryhat und es ausgewählt ist, wirdfruit=cherryin die übermittelten Formulardaten aufgenommen. Ist das Kästchen nicht ausgewählt, wird es gar nicht in den Formulardaten aufgeführt. Der Standardvaluefür Auswahlsfelder und Radiobuttons iston. colorspaceExperimentell-
Gültig nur für den
color-Eingabetyp, spezifiziert dascolorspace-Attribut den Farbraum, der von dertype="color"-Eingabe verwendet wird. Mögliche aufgelistete Werte sind:"limited-srgb": Die Farbe befindet sich im sRGB-Farbraum. Dies schließtrgb(),hsl(),hwb()und<hex-color>Werte ein. Der Farbwert ist auf 8-Bits pror,gundbKomponente beschränkt. Dies ist der Standardwert."display-p3": Der Display P3 Farbraum, z.B.,color(display-p3 1.84 -0.19 0.72 / 0.6)
dirname-
Gültig für
hidden,text,search,url,tel, undemailEingabetypen, ermöglicht dasdirname-Attribut die Übermittlung der Richtung des Elements. Wenn dieses enthalten ist, übermittelt das Steuerelement zwei Name/Wert-Paare: das erste ist dernameundvalue, und 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 obige Formular übermittelt wird, führt die Eingabe dazu, dass sowohl das
name/value-Paar vonfruit=cherryals auch dasdirname/Richtung-Paar vonfruit-dir=ltrgesendet werden. Weitere Informationen finden Sie imdirname-Attribut. disabled-
Ein Boolesches Attribut, das, wenn vorhanden, anzeigt, dass der Benutzer nicht in der Lage sein sollte, mit der Eingabe zu interagieren. Deaktivierte Eingaben werden typischerweise in der Darstellung abgedunkelt angezeigt oder verwenden eine andere Form der Indikation, dass das Feld nicht zur Benutzung freigegeben ist.
Insbesondere deaktivierte Eingaben erhalten das
click-Ereignis nicht, und deaktivierte Eingaben werden nicht mit dem Formular übermittelt.Hinweis: Obwohl nicht von der Spezifikation gefordert, wird Firefox standardmäßig den dynamischen deaktivierten Zustand eines
<input>über Seitenladeaktionen speichern (persistieren). Verwenden Sie dasautocomplete-Attribut, um diese Funktion zu steuern. form-
Ein String, der das
<form>-Element angibt, mit dem die Eingabe verknüpft ist (d.h. ihr Formulareigentümer). Der Wert dieses Strings, falls vorhanden, muss mit derideines<form>-Elements im gleichen Dokument übereinstimmen. Wenn dieses Attribut nicht angegeben ist, wird das<input>-Element mit dem nächstgelegenen enthaltenen Formular verknüpft, falls vorhanden.Das
form-Attribut ermöglicht es Ihnen, eine Eingabe überall im Dokument zu platzieren und sie dennoch mit einem Formular an anderer Stelle im Dokument einzubeziehen.Hinweis: Eine Eingabe kann nur mit einem Formular verknüpft werden.
formaction-
Nur gültig für den
imageundsubmitEingabetyp. Weitere Informationen finden Sie beim submit Eingabetyp. formenctype-
Nur gültig für den
imageundsubmitEingabetyp. Weitere Informationen finden Sie beim submit Eingabetyp. formmethod-
Nur gültig für den
imageundsubmitEingabetyp. Weitere Informationen finden Sie beim submit Eingabetyp. formnovalidate-
Nur gültig für den
imageundsubmitEingabetyp. Weitere Informationen finden Sie beim submit Eingabetyp. formtarget-
Nur gültig für den
imageundsubmitEingabetyp. Weitere Informationen finden Sie beim submit Eingabetyp. height-
Nur gültig für den
imageEingabe-Button, dieheightist die Höhe der Bilddatei, die angezeigt werden soll, um den grafischen Submit-Button zu repräsentieren. Siehe den image Eingabetyp. id-
Globales Attribut, gültig für alle Elemente, einschließlich aller Eingabetypen, es definiert eine eindeutige Kennung (ID), die im gesamten Dokument eindeutig sein muss. Zweck ist es, das Element zu identifizieren, wenn es verlinkt wird. Der Wert wird als Wert des
for-Attributs im<label>verwendet, um das Label mit der Formularsteuerung zu verknüpfen. Siehe<label>. inputmode-
Globaler Wert, gültig für alle Elemente, bietet einen Hinweis für Browser über die Art der virtuellen Tastaturkonfiguration, die beim Bearbeiten dieses Elements oder seines Inhaltes zu verwenden ist. Werte umfassen
none,text,tel,url,email,numeric,decimalundsearch. list-
Der dem
list-Attribut zugewiesene Wert sollte dieideiner<datalist>sein, die im gleichen Dokument enthalten ist. Die<datalist>bietet eine Liste mit vordefinierten Werten, die dem Benutzer zur Eingabe empfohlen werden. Jeder Wert in der Liste, der mit demtypenicht kompatibel ist, wird nicht in die Vorschläge aufgenommen. Die bereitgestellten Werte sind Vorschläge, keine Anforderungen: Benutzer können aus dieser vordefinierten Liste wählen oder einen anderen Wert angeben.Es ist gültig bei
text,search,url,tel,email,date,month,week,time,datetime-local,number,rangeundcolor.Gemäß den Spezifikationen wird das
list-Attribut von denhidden,password,checkbox,radio,fileoder keinem der Button-Typen unterstützt.Abhängig vom Browser könnte der Benutzer eine benutzerdefinierte Farbpalette vorgeschlagen bekommen, Haltemarken entlang eines Bereichs oder sogar eine Eingabe, die sich wie eine
<select>öffnet, aber nicht gelistete Werte zulässt. Sehen Sie sich die Browser-Kompatibilitätstabelle für die anderen Eingabetypen an.Siehe das
<datalist>-Element. max-
Gültig für
date,month,week,time,datetime-local,numberundrange, es definiert den höchsten Wert im Bereich zugelassener Werte. Wenn dervalue, der in das Element eingegeben wird, dieses übersteigt, schlägt das Element in der Constraint Validation fehl. Wenn der Wert desmax-Attributs keine Zahl ist, hat das Element keinen Höchstwert.Es gibt einen Sonderfall: Wenn der Datentyp periodisch ist (wie bei Daten oder Zeiten), kann der Wert von
maxniedriger sein als der Wert vonmin, was darauf hinweist, dass der Bereich sich umschlagen könnte; zum Beispiel erlaubt dies Ihnen, einen Bereich von Uhrzeiten von 10 PM bis 4 AM festzulegen. maxlength-
Gültig für
text,search,url,tel,emailundpassword, es definiert die maximale Zeichenlänge (gemessen in UTF-16 Code-Einheiten), die der Benutzer in das Feld eingeben kann. Dies muss ein ganzzahliger Wert von 0 oder höher sein. Wenn keinmaxlengthangegeben ist oder ein ungültiger Wert angegeben ist, hat das Feld kein maximales Längenlimit. Dieser Wert muss auch größer oder gleich dem Wert vonminlengthsein.Die Eingabe schlägt in der Constraint Validation fehl, wenn die Länge des in das Feld eingegebenen Textes mehr als
maxlengthUTF-16 Code-Einheiten beträgt. Standardmäßig verhindern Browser, dass Benutzer mehr Zeichen eingeben, als dasmaxlength-Attribut erlaubt. Constraint Validation wird nur angewendet, wenn der Wert vom Benutzer geändert wird. Siehe Client-side validation für mehr Informationen. min-
Gültig für
date,month,week,time,datetime-local,numberundrange, es definiert den negativsten Wert im Bereich der zulässigen Werte. Wenn dervalue, der in das Element eingegeben wird, kleiner ist, schlägt das Element in der Constraint Validation 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-leerer Wert kleiner als das erlaubte Minimum desmin-Attributs ist, verhindert die Constraint Validation die Formularübermittlung. Siehe Client-side validation für mehr Informationen.Es gibt einen Sonderfall: Wenn der Datentyp periodisch ist (wie bei Daten oder Zeiten), kann der Wert von
maxniedriger sein als der Wert vonmin, was darauf hinweist, dass der Bereich sich umschlagen könnte; zum Beispiel erlaubt dies Ihnen, einen Bereich von Uhrzeiten von 10 PM bis 4 AM festzulegen. minlength-
Gültig für
text,search,url,tel,emailundpassword, es definiert die minimale Zeichenlänge (gemessen in UTF-16 Code-Einheiten), die der Benutzer in das Eingabefeld eingeben kann. Dies muss ein nicht-negativer, ganzzahliger Wert sein, der kleiner oder gleich dem Wert desmaxlengthist. Wenn keinminlengthangegeben ist oder ein ungültiger Wert angegeben ist, hat die Eingabe kein Mindestlängenlimit.Die Eingabe schlägt in der Constraint Validation fehl, wenn die Länge des in das Feld eingegebenen Textes weniger als
minlengthUTF-16 Code-Einheiten beträgt, was die Formularübermittlung verhindert. Constraint Validation wird nur angewendet, wenn der Wert vom Benutzer geändert wird. Siehe Client-side validation für mehr Informationen. multiple-
Das boolesche
multiple-Attribut bedeutet, wenn gesetzt, dass der Benutzer kommagetrennte E-Mail-Adressen im E-Mail-Widget eingeben oder mehr als eine Datei mit derfile-Eingabe wählen kann. Siehe den email und file Eingabetyp. name-
Ein String, der einen Namen für die Eingabesteuerung spezifiziert. Dieser Name wird zusammen mit dem Wert des Steuerelements übermittelt, wenn die Formulardaten übermittelt werden.
Betrachten Sie den
nameals ein erforderliches Attribut (auch wenn es das nicht ist). Wenn eine Eingabe keinennameangegeben hat odernameleer ist, wird der Wert der Eingabe nicht mit dem Formular übermittelt! (Deaktivierte Steuerelemente, nicht markierte Radiobuttons, nicht markierte Kästchen, und Reset-Buttons werden ebenfalls nicht gesendet.)Es gibt zwei Sonderfälle:
_charset_: Wenn es als Name eines<input>-Elements vom Typ hidden verwendet wird, wird dervalueder Eingabe automatisch vom User Agent auf die Zeichenkodierung gesetzt, die zur Formularübermittlung verwendet wird.isindex: Aus historischen Gründen ist der Nameisindexnicht erlaubt.
Das
name-Attribut erzeugt ein einzigartiges Verhalten für Radiobuttons.Nur ein Radiobutton in einer gleichnamigen Gruppe von Radiobuttons kann auf einmal ausgewählt sein. Wenn ein Radiobutton in dieser Gruppe ausgewählt wird, wird jeder aktuell ausgewählte Radiobutton in der gleichen Gruppe automatisch abgewählt. Der Wert des einen ausgewählten Radiobuttons wird zusammen mit dem Namen übermittelt, wenn das Formular übermittelt wird.
Beim Tabben in eine Reihe gleichnamiger Gruppen von Radiobuttons wird, wenn einer ausgewählt ist, dieser den Fokus erhalten. Wenn sie nicht in Reihenfolge gruppiert sind, beginnt das Tabben in der Gruppe, wenn der erste in der Gruppe angetroffen wird, und überspringt alle, die nicht ausgewählt sind. Das bedeutet, wenn einer ausgewählt ist, überspringt das Tabben die nicht markierten Radiobuttons in der Gruppe. Wenn keiner ausgewählt ist, erhält die Gruppe den Fokus, wenn der erste Button in der Gruppe erreicht wird.
Sobald ein Radiobutton in einer Gruppe den Fokus hat, navigieren die Pfeiltasten durch alle Radiobuttons mit demselben Namen, selbst wenn die Radiobuttons in der Quellreihenfolge nicht beieinander gruppiert sind.
Wenn ein Eingabeelement einen
nameerhalten hat, wird dieser Name zu einer Eigenschaft derHTMLFormElement.elements-Eigenschaft des eigenen Formularelements. Wenn Sie eine Eingabe haben, derennameaufguestgesetzt ist und eine andere, derennamehat-sizeist, kann der folgende Code verwendet werden:jslet form = document.querySelector("form"); let guestName = form.elements.guest; let hatSize = form.elements["hat-size"];Wenn dieser Code ausgeführt wurde, wird
guestNamedasHTMLInputElementfür dasguest-Feld sein undhatSizedas Objekt für dashat-size-Feld.Warnung: Vermeiden Sie es, Formularsteuerelementen einen
namezu geben, der einem eingebauten Attribut des Formulars entspricht, da Sie damit das vordefinierte Eigenschaft oder die Methode mit diesem Verweis auf das entsprechende Eingabefeld überschreiben würden. pattern-
Gültig für
text,search,url,tel,emailundpassword, wird daspattern-Attribut verwendet, um einen regulären Ausdruck zu erstellen, dem der Eingabe-[value](#value)entsprechen muss, um die Constraint Validation zu bestehen. Es muss ein gültiger JavaScript-Regular-Expression-Ausdruck sein, wie er vomRegExp-Typ verwendet wird und in unserem Leitfaden zu regulären Ausdrücken dokumentiert ist. Keine Schrägstriche sollten um den Mustertext spezifiziert werden. Beim Erstellen des regulären Ausdrucks:- wird das Muster implizit mit
^(?:und)$umschlossen, sodass der Abgleich auf den gesamten Eingabewert erforderlich ist, d.h.^(?:<pattern>)$. - wird das
'v'-Flag angegeben, sodass das Muster als eine Sequenz von Unicode-Code-Punkten behandelt wird, anstelle von 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 Muster-Attribut gültig ist und ein nicht-leerer Wert nicht dem Muster entspricht, verhindert die Constraint Validation die Formularübermittlung. Wenn dasmultiplevorhanden ist, wird der erzeugte reguläre Ausdruck gegen jeden kommagetrennten 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 einschließen. Sie können auch eintitle-Attribut einfügen, um zu erläutern, welche Voraussetzungen erfüllt sein müssen, um das Muster abzugleichen; die meisten Browser zeigen diesen Titel als Tooltip an. Die sichtbare Erklärung ist für die Barrierefreiheit erforderlich. Der Tooltip ist eine Verbesserung.Weitere Informationen finden Sie unter Client-side validation.
- wird das Muster implizit mit
placeholder-
Gültig für
text,search,url,tel,email,passwordundnumber, dasplaceholder-Attribut bietet dem Benutzer einen kurzen Hinweis darauf, welche Art von Information im Feld erwartet wird. Es sollte ein Wort oder eine kurze Phrase sein, die einen Hinweis auf die erwartete Art der Daten gibt, anstatt einer Erklärung oder Aufforderung. Der Text darf keine Wagenrückläufe oder Zeilenumbrüche enthalten. Zum Beispiel, wenn in einem Feld der Vorname eines Benutzers erwartet wird und das Label "Vorname" lautet, könnte ein geeigneter Placeholder "z.B. Mustafa" sein.Hinweis: Das
placeholder-Attribut ist nicht so semantisch nützlich wie andere Möglichkeiten, Ihr Formular zu erklären, und kann unerwartete technische Probleme mit Ihrem Inhalt verursachen. Weitere Informationen finden Sie unter Labels. popovertarget-
Macht ein
<input type="button">-Element zu einer Popover-Steuerungsschaltfläche; nimmt die ID des Popover-Elements an, das als Wert zu steuern ist. Weitere Details finden Sie auf der Popover API Hauptseite. Die Etablierung einer Beziehung zwischen einem Popover und seinem übergeordneten Button mit dempopovertarget-Attribut hat zwei zusätzliche nützliche Effekte:- Der Browser erstellt eine implizite
aria-detailsundaria-expandedBeziehung zwischen Popover und dem übergeordneten Element und platziert das Popover in einer logischen Position in der Tastaturfokus-Navigationsreihenfolge, wenn es angezeigt wird. Dies macht das Popover für Tastatur- und unterstützende Technologie (AT) Benutzer zugänglicher (siehe auch Popover-Zugänglichkeitseigenschaften). - Der Browser erstellt eine implizite Verankerungsreferenz zwischen den beiden, was es sehr bequem macht, Popover relativ zu ihren Steuerungen mit CSS-Verankerungs-Positionierung zu positionieren. Weitere Details finden Sie unter Popover-Ankerpositionierung.
- Der Browser erstellt eine implizite
popovertargetaction-
Gibt die Aktion an, die auf einem von einer Steuerung
<input type="button">kontrollierten Popover-Element ausgeführt werden soll. Mögliche Werte sind:"hide"-
Die Schaltfläche wird ein angezeigtes Popover verbergen. Wenn versucht wird, ein bereits verstecktes Popover zu verbergen, wird keine Aktion ergriffen.
"show"-
Die Schaltfläche wird ein verstecktes Popover anzeigen. Wenn versucht wird, ein bereits angezeigtes Popover anzuzeigen, wird keine Aktion ergriffen.
"toggle"-
Die Schaltfläche wird ein Popover zwischen angezeigt und versteckt umschalten. Wenn das Popover versteckt ist, wird es angezeigt; ist das Popover sichtbar, wird es versteckt. Wenn
popovertargetactionweggelassen wird, ist"toggle"die Standardaktion, die von der Steuerungsschaltfläche ausgeführt wird.
readonly-
Ein Boolesches Attribut, das, wenn vorhanden, anzeigt, dass der Benutzer den Wert der Eingabe nicht ändern kann. Das
readonly-Attribut wird von dentext,search,url,tel,email,date,month,week,time,datetime-local,numberundpasswordEingabetypen unterstützt.Weitere Informationen finden Sie auf der HTML-Attribut-Seite:
readonly. required-
requiredist ein Boolesches Attribut, das, wenn vorhanden, angibt, dass der Benutzer einen Wert für die Eingabe angeben muss, bevor das eigene Formular übermittelt werden kann. Dasrequired-Attribut wird von dentext,search,url,tel,email,date,month,week,time,datetime-local,number,password,checkbox,radioundfileEingaben unterstützt.Weitere Informationen finden Sie bei Client-side validation und auf der HTML-Attribut-Seite:
required. size-
Gültig für
email,password,tel,urlundtext, gibt das Attributsizean, wie viel der Eingabe angezeigt wird. Im Wesentlichen dasselbe Ergebnis wie das Setzen der CSSwidth-Eigenschaft mit ein paar Besonderheiten. Die tatsächliche Einheit des Wertes hängt vom Eingabetyp ab. Fürpasswordundtextist es die Anzahl von Zeichen (oderem-Einheiten) mit einem Standardwert von20, und für andere sind es Pixel (oderpxEinheiten). CSSwidthhat Vorrang über dassize-Attribut. src-
Nur gültig für den
imageEingabe-Button, istsrcein String, der die URL der Bilddatei angibt, die angezeigt werden soll, um den grafischen Submit-Button darzustellen. Siehe den image Eingabetyp. step-
Gültig für
date,month,week,time,datetime-local,numberundrange, ist dasstepAttribut eine Zahl, die die Granularität spezifiziert, an die sich der Wert halten muss. Nur Werte, die eine ganzzahlige Anzahl von Schritten von der Schrittbasis entfernt sind, sind gültig. Die Schrittbasis istmin, falls angegeben, andernfallsvalueoder0, falls keines angegeben ist (außer fürweek, das eine Standard-Diagrammbasis von −259,200,000 hat, was den Beginn der Woche1970-W01darstellt).Wenn nicht explizit eingefügt:
stephat fürnumberundrangeden Standardwert1.- Jeder Datums-/Uhrzeiteingabentyp hat einen geeigneten Standard-
step-Wert für den Typ; für die einzelnen Eingabeseiten:date,datetime-local,month,time, undweek.
Der Wert muss eine positive Zahl sein – ganzzahlig oder als Gleitkommazahl – oder der spezielle Wert
any, der bedeutet, dass keine Schritte impliziert sind, und jeder Wert zulässig ist (unter anderen Einschränkungen wieminundmax).Zum Beispiel, wenn Sie
<input type="number" min="10" step="2">haben, dann sind alle geraden Ganzzahlen größer oder gleich10gültig. Ist die Angabe weggelassen, akzeptiert<input type="number">jede Ganzzahl, jedoch sind Gleitkommazahlen (wie4.2) nicht gültig, dennstephat standardmäßig den Wert1. Damit4.2gültig ist, hättestepaufany, 0.1, 0.2 oder dermin-Wert hätte auf eine Zahl, die mit.2endet, gesetzt werden müssen, wie<input type="number" min="-5.2">.Hinweis: Wenn die vom Benutzer eingegebenen Daten nicht den Schritt-Konfigurationen entsprechen, wird der Wert in der Constraint Validation als ungültig angesehen und entspricht der
:invalidSammlung.Weitere Informationen finden Sie bei Client-side validation.
switch-
Gültig nur für
checkbox-Eingaben,switchist ein Boolesches Attribut, das angibt, ob das Checkbox-Eingabefeld als Schalter angezeigt 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, gültig für alle Elemente, einschließlich aller Eingabetypen, ein ganzzahliges Attribut, das angibt, ob das Element den Eingabefokus erlangen kann (fokusserbar ist), wenn es an der sequentiellen Tastaturnavigation teilnehmen soll. Da alle Eingabetypen, außer solchen vom Typ
hidden, fokusförmig sind, sollte dieses Attribut nicht auf Formularsteuerelementen verwendet werden, da dies erfordern würde, dass die Fokusreihenfolge für alle Elemente im Dokument verwaltet wird, mit dem Risiko, die Benutzerfreundlichkeit und Zugänglichkeit zu beeinträchtigen, wenn es falsch gemacht wird. title-
Globales Attribut, gültig für alle Elemente, einschließlich aller Eingabetypen, das einen Text enthält, der verbindliche Informationen im Zusammenhang mit dem Element angibt, zu dem es gehört. Derartige Informationen können dem Benutzer typischerweise, jedoch nicht unbedingt, als Tooltip präsentiert werden. Der Titel sollte NICHT als primäre Erklärung des Zwecks der Formularsteuerung verwendet werden. Stattdessen verwenden Sie das
<label>-Element mit einemfor-Attribut, das auf das[id`](#id) des Formularsteuerelements gesetzt ist. Weitere Informationen finden Sie bei Labels. type-
Ein String, der den Typ der zu rendierenden Steuerung angibt. Um beispielsweise ein Kästchen zu erstellen, wird ein Wert von
checkboxverwendet. Wird es weggelassen (oder ein unbekannter Wert angegeben), wird der Eingabetyptextverwendet, was ein einfaches Textfeld erzeugt.Erlaubte Werte siehe Input types oben.
value-
Der Wert der Eingabesteuerung. Wenn in HTML angegeben, ist dies der Anfangswert, und von da an kann er jederzeit mithilfe von JavaScript auf das entsprechende
HTMLInputElementObjekt über dasvalue-Eigenschaft abgeändert oder abgerufen werden. Dasvalue-Attribut ist immer optional, sollte jedoch als zwingend fürcheckbox,radioundhiddenangesehen werden. width-
Nur gültig für den
imageEingabe-Button, diewidthist die Breite der Bilddatei, die angezeigt werden soll, um den grafischen Submit-Button zu repräsentieren. Siehe den image Eingabetyp.
Nicht-standardisierte Attribute
Die folgenden nicht-standardisierten Attribute stehen ebenfalls in einigen Browsern zur Verfügung. Als allgemeine Regel sollten diese nur verwendet werden, wenn es keine Alternative gibt.
| Attribut | Beschreibung |
|---|---|
incremental |
Ob wiederholte [`search`](/de/docs/Web/API/HTMLInputElement/search_event)-Ereignisse gesendet werden sollen, um die Aktualisierung der Livesuche zu ermöglichen, 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 durchgeführt wird, wenn der Benutzer die Enter oder Return-Taste drückt, während er das
Feld bearbeitet; dies wird verwendet, um eine geeignete Bezeichnung für diese Taste auf einer virtuellen Tastatur zu identifizieren. Da dieses Attribut veraltet ist, verwenden Sie stattdessen |
orient |
Setzt die Ausrichtung des Bereichsreglers. Nur Firefox. |
results |
Die maximale Anzahl von Elementen, die in der Dropdown-Liste der vorherigen Suchanfragen angezeigt werden sollen. Nur Safari. |
webkitdirectory
|
Ein Boolescher Wert, der anzeigt, ob es nur erlaubt werden soll, ein Verzeichnis (oder Verzeichnisse, wenn multiple ebenfalls vorhanden ist), auszuwählen.
|
incrementalNicht standardisiert-
Das Boolesche Attribut
incrementalist eine WebKit- und Blink-Erweiterung (daher unterstützt von Safari, Opera, Chrome, etc.), die, wenn vorhanden, dem User Agent mitteilt, die Eingabe als Livesuche zu verarbeiten. Während der Benutzer den Wert des Feldes bearbeitet, sendet der User Agentsearch-Ereignisse an dasHTMLInputElementObjekt, das das Suchfeld darstellt. Damit kann Ihr Code die Suchergebnisse in Echtzeit aktualisieren, während der Benutzer die Suche bearbeitet.Wenn
incrementalnicht angegeben ist, wird dassearch-Ereignis nur gesendet, wenn der Benutzer explizit eine Suche einleitet (z.B. durch Drücken der Enter oder Return-Taste, während er das Feld bearbeitet).Das
search-Ereignis ist rate-begrenzt, sodass es nicht häufiger gesendet wird als durch ein implementationsdefiniertes Intervall. orientNicht standardisiert-
Ähnlich wie bei der nicht-standardisierten CSS-Eigenschaft -moz-orient, die die
<progress>und<meter>Elemente beeinflusst, definiert dasorient-Attribut die Ausrichtung des Bereichsreglers. Werte umfassenhorizontal, was bedeutet, dass der Bereich horizontal gerendert wird, undvertical, wo der Bereich vertikal gerendert wird. Siehe Erstellen von vertikalen Formular-Steuerelementen für einen modernen Ansatz zur Erstellung von vertikalen Formular-Steuerelementen. resultsNicht standardisiert-
Das
results-Attribut - unterstützt nur von Safari - ist ein numerischer Wert, der es Ihnen erlaubt, die maximale Anzahl von Einträgen zu überschreiben, die im nativ bereitgestellten Dropdown-Menü früherer Suchanfragen im<input>-Element angezeigt werden sollen.Der Wert muss eine nichtnegative Dezimalzahl sein. Wenn nicht bereitgestellt oder ein ungültiger Wert angegeben ist, wird die Standardhöchstzahl der Einträge des Browsers verwendet.
webkitdirectoryNicht standardisiert-
Das boolesche
webkitdirectory-Attribut, wenn es vorhanden ist, gibt an, dass nur Verzeichnisse in der Dateiauswahloberfläche vom Benutzer ausgewählt werden können. 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. Auch wenn es relativ weit verbreitete Unterstützung hat, ist es noch nicht standardisiert und sollte nur verwendet werden, wenn es keine Alternative gibt.
Methoden
Die folgenden Methoden werden von der HTMLInputElement-Schnittstelle bereitgestellt, die <input>-Elemente im DOM repräsentiert. Auch die Methoden, die von den übergeordneten Schnittstellen HTMLElement, Element, Node und EventTarget spezifiziert sind, stehen zur Verfügung.
checkValidity()-
Gibt
truezurück, wenn der Wert des Elements die Validitätsprüfungen besteht; andernfalls gibt esfalsezurück und löst eininvalid-Ereignis am Element aus. reportValidity()-
Gibt
truezurück, wenn der Wert des Elements die Validitätsprüfungen besteht; andernfalls gibt esfalsezurück, löst eininvalid-Ereignis am Element aus und meldet das Problem dem Benutzer (sofern das Ereignis nicht abgebrochen wird). 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 z. B. einem visuellen Farbwähler oder Datums-Picker) macht diese Methode nichts. setCustomValidity()-
Legt eine benutzerdefinierte Nachricht fest, die angezeigt wird, wenn der Wert des Eingabeelements nicht gültig ist.
setRangeText()-
Setzt den Inhalt des angegebenen Zeichenbereichs im Eingabeelement auf eine gegebene Zeichenkette. Ein
selectMode-Parameter ist verfügbar, um zu steuern, wie der vorhandene Inhalt betroffen ist. setSelectionRange()-
Wählt den angegebenen Zeichenbereich innerhalb eines Texteingabeelements aus. Tut nichts für Eingaben, die nicht als Textfelder präsentiert werden.
showPicker()-
Zeigt den Browser-Picker für das Eingabeelement an, der normalerweise angezeigt wird, wenn das Element ausgewählt wird, jedoch durch Klicken auf eine Schaltfläche oder eine andere Benutzerinteraktion ausgelöst wird.
stepDown()-
Verringert den Wert einer numerischen Eingabe um eins standardmäßig oder um die angegebene Anzahl von Einheiten.
stepUp()-
Erhöht den Wert einer numerischen Eingabe um eins oder um die angegebene Anzahl von Einheiten.
CSS
Inputs, als ersetzte Elemente, haben einige Features, die nicht auf Nichtformen-Elemente anwendbar sind. Es gibt CSS-Selektoren, die speziell Formularsteuerelemente basierend auf ihren UI-Features, auch bekannt als UI-Pseudoklassen, anvisieren können. Das Input-Element kann auch nach Typ mit Attributselektoren angesprochen werden. Einige Eigenschaften sind ebenfalls besonders nützlich.
UI-Pseudoklassen
| Pseudoklasse | Beschreibung |
|---|---|
:enabled |
Jedes derzeit aktivierte Element, das aktiviert (ausgewählt, angeklickt, eingegeben usw.) oder fokussiert werden kann und auch einen deaktivierten Zustand hat, in dem es nicht aktiviert oder fokussiert werden kann. |
:disabled |
Jedes derzeit deaktivierte Element, das einen aktivierten Zustand hat, was bedeutet, dass es ansonsten aktiviert werden könnte (ausgewählt, angeklickt, eingegeben usw.) oder fokussiert werden könnte, wäre es nicht deaktiviert. |
:read-only |
Element nicht bearbeitbar durch den Benutzer |
:read-write |
Element, das vom Benutzer bearbeitbar ist. |
:placeholder-shown |
Element, das derzeit placeholder Text anzeigt,
einschließlich <input> und <textarea>-Elemente mit dem placeholder-Attribut, das bisher keinen Wert hat.
|
:default |
Formularelemente, die standardmäßig in einer Gruppe verwandter Elemente sind. Passt zu checkbox und radio input types, die beim Laden oder Rendern der Seite ausgewählt waren. |
:checked |
Passt zu checkbox und
radio input types, die
derzeit ausgewählt sind (und das <option> in einem
<select>, das derzeit ausgewählt ist).
|
:indeterminate |
checkbox Elemente,
deren indeterminate-Eigenschaft durch JavaScript auf true gesetzt ist,
radio Elemente, wenn alle
Radioknöpfe mit dem gleichen Namen im Formular nicht ausgewählt sind, und
<progress> Elemente in einem unbestimmten Zustand.
|
:valid |
Formularelemente, auf die eine Einschränkungsvalidierung angewendet werden kann und die derzeit gültig sind. |
:invalid |
Formularelemente, auf die eine Einschränkungsvalidierung angewendet wurde und die derzeit
nicht gültig sind. Passt zu einem Formularelement, dessen Wert nicht den
durch seine Attribute festgelegten Einschränkungen entspricht, wie z. B.
required,
pattern,
step und max.
|
:in-range |
Eine nicht leere Eingabe, deren aktueller Wert innerhalb der durch die min- und max-Attribute sowie step spezifizierten Bereichsgrenzen liegt.
|
:out-of-range |
Eine nicht leere Eingabe, deren aktueller Wert NICHT innerhalb der durch die min
und max angegebenen Bereichsgrenzen liegt oder
nicht dem step-Einschränkung entspricht.
|
:required |
<input>, <select>, oder <textarea>-Elemente, die das required-Attribut gesetzt haben.
Passt nur zu Elementen, die erforderlich sein können.
Das Attribut, das in einem nicht erforderlichen Element enthalten ist, führt nicht zu einem Treffer.
|
:optional |
<input>, <select>, oder
<textarea>-Elemente, die NICHT das required-Attribut gesetzt haben.
Passt nicht zu 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 aktiviert. Passt zu
ungültigen Eingaben, jedoch nur nach Benutzerinteraktion, z. B. durch Fokussieren
auf das Steuerelement, Verlassen des Steuerelements oder Versuch, das Formular
mit dem ungültigen Steuerelement abzusenden.
|
:open |
<input>-Elemente, die einen Picker anzeigen, aus dem der Benutzer einen Wert auswählen kann (zum Beispiel <input type="color">) — jedoch nur, wenn sich das Element im offenen Zustand befindet, das heißt, wenn der Picker angezeigt wird.
|
Beispiel für Pseudoklassen
Wir können ein Checkbox-Label basierend darauf stylen, ob die Checkbox ausgewählt ist oder nicht. In diesem Beispiel stylen wir die color und font-weight des <label>-Elements, das direkt nach einer ausgewählten Eingabe folgt. Wir haben keine Stile angewendet, wenn die input nicht ausgewählt ist.
input:checked + label {
color: red;
font-weight: bold;
}
Attributselektoren
Es ist möglich, verschiedene Arten von Formularelementen basierend auf ihrem type mit Attributselektoren zu adressieren. CSS-Attributselektoren passen zu Elementen basierend auf der bloßen Anwesenheit eines Attributs oder dem Wert eines bestimmten Attributs.
/* matches a password input */
input[type="password"] {
}
/* matches a form control whose valid values are limited to a range of values */
input[min][max] {
}
/* matches a form control with a pattern attribute */
input[pattern] {
}
::placeholder
Standardmäßig ist das Erscheinungsbild von Platzhaltertext transparent oder hellgrau. Das ::placeholder Pseudoelement ist der placeholder Text des Eingabefeldes. Es kann mit einer eingeschränkten Untermenge von CSS-Eigenschaften gestylt werden.
::placeholder {
color: blue;
}
Nur die Untermenge der CSS-Eigenschaften, die auf das ::first-line Pseudoelement anwendbar sind, kann in einer Regel verwendet werden, die ::placeholder in ihrem Selektor enthält.
caret-color
Eine Eigenschaft, die speziell für eingabebezogene Elemente ist, ist die CSS caret-color Eigenschaft, die es Ihnen ermöglicht, die Farbe zu setzen, die für die Darstellung des Texteingabecursors verwendet wird:
HTML
<label for="textInput">Note the red caret:</label>
<input id="textInput" class="custom" size="32" />
CSS
input.custom {
caret-color: red;
font:
16px "Helvetica",
"Arial",
sans-serif;
}
Resultat
Feldgröße
Die Eigenschaft field-sizing ermöglicht Ihnen, das Größenverhalten von Formulareingaben zu kontrollieren (d.h. sie erhalten standardmäßig eine bevorzugte Größe.) Diese Eigenschaft ermöglicht es Ihnen, das Standardverhalten zu überschreiben und Formularelemente sich in ihrer Größe an ihren Inhalt anpassen zu lassen.
Diese Eigenschaft wird typischerweise verwendet, um Formulareingabefelder zu erstellen, die ihren Inhalt umschließen und mit mehr eingegebenem Text wachsen. Dies funktioniert mit Eingabetypen, die unmittelbaren Texteingang akzeptieren (zum Beispiel text und url), Eingabetyp file und <textarea>-Elemente.
object-position und object-fit
In bestimmten Fällen (normalerweise bei nicht-tekstuellen Eingaben und spezialisierten Schnittstellen) ist das <input>-Element ein ersetztes Element. Wenn dem so ist, kann die 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 über das Hinzufügen von Farbe zu Elementen in HTML, siehe:
Siehe auch:
Zusätzliche Funktionen
>Labels
Labels sind nötig, um erklärenden Text mit einem <input> zu assoziieren. Das <label> Element liefert erklärende Informationen über ein Formularfeld, die immer angemessen sind (abgesehen von etwaigen Layout-Überlegungen, die Sie haben.). Es ist nie eine schlechte Idee, ein <label> zu verwenden, um zu erklären, was in ein <input> oder ein <textarea> eingegeben werden soll.
Zugehörige Labels
Die semantische Paarung von <input>- und <label>-Elementen ist nützlich für assistive Technologien wie Bildschirmlesehilfen. Indem man sie mit dem for-Attribut des <label>-Elements paart, bindet man das Label an das Eingabeelement auf eine Weise, die es Bildschirmlesehilfen ermöglicht, Eingaben den Benutzern präziser zu beschreiben.
Es genügt nicht, einfachen Text neben dem <input>-Element zu haben. Vielmehr erfordert die Benutzerfreundlichkeit und Barrierefreiheit das Einfügen von entweder einer impliziten oder expliziten <label>:
<!-- inaccessible -->
<p>Enter your name: <input id="name" type="text" size="30" /></p>
<!-- implicit label -->
<p>
<label>Enter your name: <input id="name" type="text" size="30" /></label>
</p>
<!-- explicit label -->
<p>
<label for="name">Enter your name: </label>
<input id="name" type="text" size="30" />
</p>
Das erste Beispiel ist nicht barrierefrei: Es besteht keine Beziehung zwischen der Aufforderung und dem <input>-Element.
Neben einem zugänglichen Namen bietet das Label eine größere Trefferfläche für Maus- und Touchscreen-Benutzer zum Klicken oder Berühren. Wenn Sie ein <label> mit einem <input> paaren, wird das Klicken auf eines von beiden das <input> fokussieren. Wenn Sie normalen Text verwenden, um Ihre Eingabe zu "labeln", wird dies nicht passieren. Das Hinzufügen des Prompts als Teil des Aktivierungsbereichs für das Eingabeelement ist hilfreich für Menschen mit motorischen Kontrollbedingungen.
Als Webentwickler sollten wir niemals davon ausgehen, dass Menschen alle Dinge kennen, die wir wissen. Die Vielfalt der Menschen, die das Web nutzen – und in der Verlängerung Ihre Website – garantiert praktisch, dass einige der Besucher Ihrer Website einige Variationen in Denkprozessen und/oder Umständen haben, die sie dazu führen, Ihre Formulare ohne klare und richtig dargestellte Labels sehr unterschiedlich zu interpretieren.
Platzhalter sind nicht barrierefrei
Das placeholder-Attribut ermöglicht es Ihnen, Text anzugeben, der innerhalb des <input>-Elementbereichs selbst angezeigt wird, wenn es leer ist. Der Platzhalter sollte niemals erforderlich sein, um Ihre Formulare zu verstehen. Es ist kein Label und sollte nicht als solches verwendet werden, weil es nicht ist. Der Platzhalter wird verwendet, um einen Hinweis darauf zu geben, wie ein eingegebener Wert aussehen sollte, nicht als Erklärung oder Aufforderung.
Der Platzhalter ist nicht nur für Bildschirmleser nicht zugänglich, sondern sobald der Benutzer Text in das Formularelement eingibt oder wenn das Formularelement bereits einen Wert hat, verschwindet der Platzhalter. Browser mit automatischen Seitentranslationsfunktionen können Attribute beim Übersetzen überspringen, was bedeutet, dass der placeholder möglicherweise nicht übersetzt wird.
Hinweis:
Verwenden Sie das placeholder-Attribut nicht, wenn Sie es vermeiden können. Wenn Sie ein <input>-Element beschriften müssen, verwenden Sie das <label>-Element.
Clientseitige Validierung
Warnung:
Clientseitige Validierung ist nützlich, garantiert jedoch nicht, dass der Server gültige Daten erhält. Wenn die Daten in einem bestimmten Format sein müssen, überprüfen Sie sie immer auch auf der Serverseite und geben Sie eine 400 HTTP-Antwort zurück, wenn das Format ungültig ist.
Zusätzlich zur Verwendung von CSS, um Eingaben basierend auf den :valid oder :invalid UI-Zuständen basierend auf dem aktuellen Status jeder Eingabe zu gestalten, wie im Abschnitt UI-Pseudoklassen oben erwähnt, bietet der Browser auch eine clientseitige Validierung bei (versuchter) Formularübermittlung. Bei der Formularübermittlung, falls es ein Formularelement gibt, das die Einschränkungsvalidierung nicht besteht, zeigen unterstützende Browser eine Fehlermeldung am ersten ungültigen Formularelement an; entweder eine Standardmeldung basierend auf dem Fehlertyp oder eine von Ihnen gesetzte Nachricht.
Einige Eingabetypen und andere Attribute setzen Grenzen, welche Werte für eine gegebene Eingabe gültig sind. Zum Beispiel gibt <input type="number" min="2" max="10" step="2"> an, dass nur die Zahlen 2, 4, 6, 8 oder 10 gültig sind. Es könnten verschiedene Fehler auftreten, darunter ein rangeUnderflow-Fehler, wenn der Wert kleiner als 2 ist, rangeOverflow, wenn größer als 10, stepMismatch, wenn der Wert eine Zahl zwischen 2 und 10 ist, aber keine gerade Ganzzahl (entspricht nicht der Anforderung des step-Attributes), oder typeMismatch, wenn der Wert keine Zahl ist.
Für die Eingabetypen, deren Domäne möglicher Werte periodisch ist (d.h. bei den höchsten möglichen Werten drehen sich die Werte zurück zum Anfang, anstatt zu enden), ist es möglich, dass die Werte der Eigenschaften max und min umgedreht sind, was anzeigt, dass der Bereich erlaubter Werte bei min beginnt, zurück um den niedrigsten möglichen Wert dreht und dann weitergeht, bis max erreicht ist. Dies ist besonders nützlich für Daten und Zeiten, wie wenn Sie den Bereich von 20:00 bis 8:00 Uhr erlauben möchten:
<input type="time" min="20:00" max="08:00" name="overnight" />
Spezifische Attribute und ihre Werte können zu einem bestimmten Fehler ValidityState 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 maximale Wert, der durch das
max-Attribut definiert ist.
|
maxlength |
[`validityState.tooLong`](/de/docs/Web/API/ValidityState/tooLong) |
Tritt auf, wenn die Anzahl der Zeichen größer ist als die durch die maxlength-Eigenschaft erlaubte Anzahl.
|
min |
[`validityState.rangeUnderflow`](/de/docs/Web/API/ValidityState/rangeUnderflow) |
Tritt auf, wenn der Wert kleiner ist als der minimale Wert, der durch das min-Attribut definiert ist.
|
minlength |
[`validityState.tooShort`](/de/docs/Web/API/ValidityState/tooShort) |
Tritt auf, wenn die Anzahl der Zeichen kleiner ist als die durch die minlength-Eigenschaft erforderliche Anzahl.
|
pattern |
[`validityState.patternMismatch`](/de/docs/Web/API/ValidityState/patternMismatch) |
Tritt auf, wenn ein Musterattribut mit einem gültigen regulären Ausdruck enthalten ist und der value diesem nicht entspricht.
|
required |
[`validityState.valueMissing`](/de/docs/Web/API/ValidityState/valueMissing) |
Tritt auf, wenn das required-Attribut vorhanden ist, aber der Wert null ist oder wenn Radio oder Checkbox nicht ausgewählt sind.
|
step |
[`validityState.stepMismatch`](/de/docs/Web/API/ValidityState/stepMismatch) |
Der Wert entspricht nicht dem Schrittinkrement. Standardinkrement ist 1, also sind nur ganze Zahlen auf type="number" gültig, wenn Schritt nicht enthalten ist. step="any" wird diesen Fehler niemals verursachen.
|
type |
[`validityState.typeMismatch`](/de/docs/Web/API/ValidityState/typeMismatch) |
Tritt auf, wenn der Wert nicht vom richtigen Typ ist, zum Beispiel, wenn eine E-Mail kein @ enthält oder eine URL kein Protokoll enthält.
|
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 nicht zu einem Fehler, mit Ausnahme von required.
Wir können Grenzen für die Werte setzen, die wir akzeptieren, und unterstützende Browser werden diese Formulareingabewerte nativ validieren und den Benutzer warnen, wenn beim Absenden des Formulars ein Fehler vorliegt.
Zusätzlich zu den in der obigen Tabelle 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 zeigt ein Wert von true an, dass der angegebene Grund für Fehler bei der Validierung zutrifft, mit Ausnahme der Eigenschaft valid, die true ist, wenn der Wert des Elements allen Einschränkungen entspricht.
Wenn ein Fehler auftritt, werden unterstützende Browser sowohl den Benutzer warnen als auch das Absenden des Formulars verhindern. Ein Wort der Vorsicht: Wenn eine benutzerdefinierte Fehlermeldung auf einen wahrheitsgemäßen Wert (alles außer dem leeren String oder null) gesetzt ist, wird das Formular nicht abgesendet. Wenn keine benutzerdefinierte Fehlermeldung vorliegt oder keine der anderen Eigenschaften true zurückgibt, ist valid wahr 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, die die benutzerdefinierte Fehlermeldung auf den leeren String setzt, ist entscheidend. Wenn der Benutzer einen Fehler macht und die Validität festgelegt wurde, wird das Absenden verhindern, selbst wenn alle Werte gültig sind, bis die Nachricht null ist.
Beispiel für benutzerdefinierten Validierungsfehler
Wenn Sie eine benutzerdefinierte Fehlermeldung anzeigen möchten, wenn ein Feld die Validierung nicht besteht, müssen Sie die Constraint Validation API verwenden, die auf <input> (und verwandte) Elemente verfügbar ist. Nehmen Sie das folgende Formular:
<form>
<label for="name">Enter username (upper and lowercase letters): </label>
<input type="text" name="name" id="name" required pattern="[A-Za-z]+" />
<button>Submit</button>
</form>
Die grundlegenden Funktionen zur HTML-Formularvalidierung führen dazu, dass dies eine Standardfehlermeldung erzeugt, wenn Sie versuchen, das Formular ohne gültigen gefüllten Wert oder mit einem Wert, der nicht dem pattern entspricht, abzusenden.
Wenn Sie stattdessen benutzerdefinierte Fehlermeldungen anzeigen möchten, könnten Sie JavaScript wie das folgende verwenden:
const nameInput = document.querySelector("input");
nameInput.addEventListener("input", () => {
nameInput.setCustomValidity("");
nameInput.checkValidity();
});
nameInput.addEventListener("invalid", () => {
if (nameInput.value === "") {
nameInput.setCustomValidity("Enter your username!");
} else {
nameInput.setCustomValidity(
"Usernames can only contain upper and lowercase letters. Try again!",
);
}
});
Das Beispiel wird wie folgt dargestellt:
Kurz gesagt:
- Wir überprüfen den gültigen Status des Eingabeelements jedes Mal, wenn sich der Wert ändert, durch Auslösen der
checkValidity()-Methode über deninput-Ereignishandler. - Wenn der Wert ungültig ist, wird ein
invalid-Ereignis ausgelöst, und dieinvalid-Ereignishandlungsfunktion wird ausgeführt. Innerhalb dieser Funktion ermitteln wir, ob der Wert ungültig ist, weil er leer ist oder weil er nicht dem Muster entspricht, indem wir einenif ()-Block verwenden und eine benutzerdefinierte Validitätsfehlermeldung einstellen. - Infolgedessen wird eine der benutzerdefinierten Fehlermeldungen angezeigt, wenn der Eingabewert ungültig ist, wenn die Senden-Schaltfläche gedrückt wird.
- Wenn er gültig ist, wird er so gesendet, wie Sie es erwarten würden. Damit dies passiert, muss die benutzerdefinierte Validitätsprüfung abgebrochen werden, indem
setCustomValidity()mit einem leeren Stringwert aufgerufen wird. Wir führen dies daher jedes Mal aus, wenn dasinput-Ereignis ausgelöst wird. Wenn Sie dies nicht tun und zuvor eine benutzerdefinierte Validität festgelegt wurde, wird die Eingabe als ungültig registriert, selbst wenn sie derzeit beim Absenden einen gültigen Wert enthält.
Hinweis: Überprüfen Sie immer die Eingabeanforderungen sowohl auf der Client- als auch auf der Serverseite. Einschränkungsvalidierung entfernt nicht die Notwendigkeit für eine Validierung auf der Server-Seite. Ungültige Werte können weiterhin von älteren Browsern oder durch böswillige Akteure gesendet werden.
Hinweis:
Firefox unterstützte über viele Versionen ein proprietäres Fehlerattribut - x-moz-errormessage -, das es Ihnen ermöglichte, benutzerdefinierte Fehlermeldungen auf ähnliche Weise festzulegen. Dies wurde ab Version 66 entfernt (siehe Firefox-Bug 1513890).
Lokalisierung
Die zulässigen Eingaben für bestimmte <input>-Typen hängen von der Spracheinstellung ab. In einigen Sprachregionen ist 1,000.00 eine gültige Zahl, während in anderen Sprachregionen die gültige Eingabeweise 1.000,00 ist.
Firefox verwendet die folgenden Heuristiken, um die Sprache einzustellen, um die Benutzereingabe zu validieren (zumindest für type="number"):
- Versuchen Sie die Sprache, die durch ein
lang/xml:lang-Attribut am Element oder einem seiner Elternteile angegeben wird. - Versuchen Sie die Sprache, die durch jeden
Content-LanguageHTTP-Header angegeben wird. Oder, - Verwenden Sie, wenn keine angegeben ist, die Lokalisierung des Browsers.
Barrierefreiheit
>Labels
Beim Einschließen von Eingaben ist es eine Anforderung an die Barrierefreiheit, Labels hinzuzufügen. Dies ist nötig, sodass diejenigen, die assistive Technologien verwenden, erkennen können, wofür die Eingabe ist. Zusätzlich gibt das Klicken oder Berühren eines Labels den Fokus auf die dem Label zugeordnete Formularsteuerung. Dies verbessert die Barrierefreiheit und Benutzerfreundlichkeit für sehende Benutzer, erhöht den Bereich, den ein Benutzer anklicken oder berühren kann, um die Formularsteuerung zu aktivieren. Dies ist besonders nützlich (und sogar erforderlich) für Radioknöpfe und Checkboxen, die klein sind. Für weitere Informationen zu Labels allgemein siehe Labels.
Das Folgende ist ein Beispiel, wie das <label> mit einem <input>-Element im oben beschriebenen Stil assoziiert wird. Sie müssen dem <input> ein id-Attribut geben. Das <label> benötigt dann ein for-Attribut, dessen Wert mit dem id der Eingabe übereinstimmt.
<label for="peas">Do you like peas?</label>
<input type="checkbox" name="peas" id="peas" />
Größe
Interaktive Elemente wie Formulareingaben sollten einen Bereich bereitstellen, der groß genug ist, damit man sie leicht aktivieren kann. Dies hilft einer Vielzahl von Menschen, einschließlich Menschen mit motorischen Kontrollproblemen und Menschen, die keine präzisen Eingabeformen wie einen Stift oder Finger verwenden. Eine minimale interaktive Größe von 44×44 CSS-Pixeln wird empfohlen.
Technische Zusammenfassung
| Inhaltskategorien |
Flussinhalt, gelistet, übermittelbar, zurücksetzbar, formularassoziiertes Element,
Phraseninhalt. Wenn der type nicht
hidden ist, dann beschriftbares Element, tastbarer Inhalt.
|
|---|---|
| Erlaubter Inhalt | Keiner; es ist ein Leerelement. |
| Tag-Auslassung | Muss ein Start-Tag haben und darf keinen End-Tag haben. |
| Erlaubte Eltern | Jedes Element, das Phraseninhalt akzeptiert. |
| Implizite ARIA-Rolle |
|
| Erlaubte ARIA-Rollen |
|
| DOM-Schnittstelle | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
Spezifikationen
| Specification |
|---|
| HTML> # the-input-element> |