<input>: Das HTML-Eingabeelement
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 akzeptieren; eine Vielzahl von Eingabedatentypen und Steuerungswidgets sind verfügbar, abhängig vom Gerät und dem User-Agent. Das <input>-Element ist eines der leistungsstärksten und komplexesten in HTML aufgrund der schieren Anzahl 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
Wie ein <input> funktioniert, variiert erheblich, abhängig vom Wert seines type-Attributs, daher werden die verschiedenen Typen auf separaten Referenzseiten behandelt. Wenn dieses Attribut nicht angegeben ist, wird der Standardtyp text übernommen.
Die verfügbaren Typen sind wie folgt:
| Typ | Beschreibung | Grundlegende Beispiele |
|---|---|---|
| button |
Eine Schaltfläche ohne voreingestelltes Verhalten, die den Wert des value-Attributs anzeigt, standardmäßig leer.
|
|
| checkbox | Ein Kontrollkästchen, mit dem einzelne Werte ausgewählt oder abgewählt werden können. |
|
| color | Eine Steuerung zur Festlegung einer Farbe; öffnet einen Farbwähler in unterstützenden Browsern. |
|
| date | Eine Steuerung zur Eingabe eines Datums (Jahr, Monat und Tag, ohne Zeit). Öffnet einen Datumswähler oder numerische Räder für Jahr, Monat, Tag in unterstützenden Browsern. |
|
| datetime-local | Eine Steuerung zur Eingabe eines Datums und einer Uhrzeit, ohne Zeitzone. Öffnet einen Datumswähler oder numerische Räder für Datum- und Zeitkomponenten in unterstützenden Browsern. |
|
Ein Feld zum Bearbeiten einer E-Mail-Adresse. Sieht aus wie ein text-Eingabefeld, hat jedoch Validierungsparameter und relevante Tastaturen in unterstützenden Browsern und Geräten mit dynamischen Tastaturen.
|
|
|
| file |
Eine Steuerung, die dem Benutzer erlaubt, eine Datei auszuwählen. Verwenden Sie das accept-Attribut, um die Dateitypen festzulegen, die die Steuerung auswählen kann.
|
|
| hidden | Eine Steuerung, die nicht angezeigt wird, deren Wert jedoch an den Server gesendet wird. Es gibt ein Beispiel in der nächsten Spalte, aber es ist verborgen! | |
| image |
Eine grafische submit-Schaltfläche. Zeigt ein Bild an, das durch das src-Attribut definiert ist. Das alt-Attribut wird angezeigt, wenn das Bild src fehlt.
|
|
| month | Eine Steuerung zur Eingabe eines Monats und Jahres, ohne Zeitzone. |
|
| number | Eine Steuerung zur Eingabe einer Zahl. Zeigt einen Spinner an und fügt eine Standardvalidierung hinzu. Auf einigen Geräten mit dynamischen Tastaturen wird eine numerische Tastatur angezeigt. |
|
| password | Einzeiliges Textfeld, dessen Wert verwischt wird. Warnt den Benutzer, wenn die Seite nicht sicher ist. |
|
| radio |
Ein Optionsfeld, das es ermöglicht, einen einzigen Wert aus mehreren Optionen mit demselben name-Wert auszuwählen.
|
|
| range |
Eine Steuerung zur Eingabe einer Zahl, deren exakter Wert nicht wichtig ist. Wird als Bereichs-Widget angezeigt, das standardmäßig auf den Mittelwert eingestellt ist. Wird in Verbindung mit min und max verwendet, um den Bereich akzeptabler Werte zu definieren.
|
|
| reset | Eine Schaltfläche, die den Inhalt des Formulars auf die Standardwerte zurücksetzt. Nicht empfohlen. |
|
| search | Einzeiliges Textfeld zur Eingabe von Suchbegriffen. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. Kann in unterstützenden Browsern ein Löschsymbol enthalten, mit dem das Feld geleert werden kann. Zeigt auf einigen Geräten mit dynamischen Tastaturen ein Suchsymbol anstelle der Eingabetaste an. |
|
| submit | Eine Schaltfläche, die das Formular absendet. |
|
| tel | Eine Steuerung zur Eingabe einer Telefonnummer. Zeigt in einigen Geräten mit dynamischen Tastaturen eine Telefontastatur an. |
|
| text | Der Standardwert. Einzeiliges Textfeld. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. |
|
| time | Eine Steuerung zur Eingabe eines Zeitwerts ohne Zeitzone. |
|
| url |
Ein Feld zur Eingabe einer URL. Sieht aus wie ein text-Eingabefeld, hat jedoch Validierungsparameter und relevante Tastaturen in unterstützenden Browsern und Geräten mit dynamischen Tastaturen.
|
|
| week | Eine Steuerung zur Eingabe eines Datums, bestehend aus einer Wochennummer und einer Jahrwoche, ohne Zeitzone. |
|
| Veraltete Werte | ||
datetime
Veraltet
|
Eine Steuerung 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 leistungsfähig aufgrund seiner Attribute; das type-Attribut, das mit Beispielen oben beschrieben wurde, ist dabei das wichtigste. Da jedes <input>-Element, unabhängig vom Typ, auf dem HTMLInputElement-Interface basiert, teilen sie technisch die exakt gleichen Attributsätze. Allerdings haben die meisten Attribute in der Praxis nur Einfluss auf einen bestimmten Teil der Eingabetypen. Darüber hinaus wirkt sich die Art und Weise, wie einige Attribute auf eine Eingabe wirken, unterschiedlich auf verschiedene Eingabetypen aus.
Dieser Abschnitt bietet eine Tabelle, die alle Attribute mit einer kurzen Beschreibung auflistet. Diese Tabelle wird gefolgt von einer Liste, die jedes Attribut detaillierter beschreibt, zusammen mit den Eingabetypen, mit denen sie assoziiert sind. Diejenigen, die für die meisten oder alle Eingabetypen gemeinsam sind, werden ausführlicher unten definiert. Attribute, die bei bestimmten Eingabetypen einzigartig sind – oder Attribute, die für alle Eingabetypen üblich sind, aber spezielles Verhalten aufweisen, wenn sie auf einem bestimmten Eingabetyp verwendet werden – sind stattdessen auf den Seiten dieser Typen dokumentiert.
Attribute für das <input>-Element umfassen die globalen HTML-Attribute und zusätzlich:
| Attribut | Typ(en) | Beschreibung |
|---|---|---|
accept |
file |
Hinweis auf den erwarteten Dateityp in Dateiupload-Steuerungen |
alpha |
color |
Deckkraft der Farbe |
alt |
image |
Alt-Attribut für den Bildtyp. Erforderlich für Barrierefreiheit |
autocapitalize |
alle außer url, email und password |
Steuert die automatische Großschreibung im eingegebenen Text. |
autocomplete |
alle außer checkbox, radio und Buttons |
Hinweis für Autofill-Funktion |
capture |
file |
Eingabemethode für die Medienaufnahme in Dateiupload-Steuerungen |
checked |
checkbox, radio |
Ob der Befehl oder die Steuerung aktiviert ist |
colorspace |
color |
Der Farbraum, der zur Auswahl des Farbwerts verwendet werden soll |
dirname |
hidden, text, search, url, tel, email |
Name des Formularfelds, um die Richtung des Elements bei der Formularübermittlung zu senden |
disabled |
alle | Ob das Formularelement deaktiviert ist |
form |
alle | Ordnet die Steuerung einem Formularelement zu |
formaction |
image, submit |
URL für die Formularübermittlung |
formenctype |
image, submit |
Formulardatensatz-Codierungstyp für die Formularübermittlung |
formmethod |
image, submit |
HTTP-Methode für die Formularübermittlung |
formnovalidate |
image, submit |
Umgehung der Formularvalidierung 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 Buttons |
Wert des id-Attributs der <datalist> der Autovervollständigungsoptionen |
max |
date, month, week, time, datetime-local, number, range |
Maximaler Wert |
maxlength |
text, search, url, tel, email, password |
Maximale Länge (Anzahl der Zeichen) des value |
min |
date, month, week, time, datetime-local, number, range |
Minimaler Wert |
minlength |
text, search, url, tel, email, password |
Minimale Länge (Anzahl der Zeichen) des value |
multiple |
email, file |
Boolean. Ob mehrere Werte erlaubt sind |
name |
alle | Name des Formularsteuerelements. Wird zusammen mit dem Formular als Teil eines Namen/Wert-Paars übermittelt. |
pattern |
text, search, url, tel, email, password |
Muster, das value erfüllen muss, um gültig zu sein |
placeholder |
text, search, url, tel, email, password, number |
Text, der im Formularelement erscheint, wenn kein Wert gesetzt ist |
popovertarget |
button |
Designiert ein <input type="button"> als Steuerelement für ein Popover-Element |
popovertargetaction |
button |
Gibt die Aktion an, die ein Popover-Steuerelement ausführen soll |
readonly |
alle außer hidden, range, color, checkbox, radio und Buttons |
Boolean. Der Wert ist nicht bearbeitbar |
required |
alle außer hidden, range, color und Buttons |
Boolean. Ein Wert ist erforderlich oder muss überprüft werden, um das Formular absendbar zu machen |
size |
text, search, url, tel, email, password |
Größe der Steuerung |
src |
image |
Entspricht dem src-Attribut für <img>; Adresse der Bildressource |
step |
date, month, week, time, datetime-local, number, range |
Inkrementelle gültige Werte |
type |
alle | Typ des Formularelements |
value |
alle außer image |
Der Wert der Steuerung. Wenn im HTML angegeben, entspricht dies dem Anfangswert |
width |
image |
Entspricht dem Breitenattribut 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
file-Eingabetyp, dasaccept-Attribut legt fest, welche Dateitypen in einerfile-Upload-Steuerung auswählbar sind. Siehe den file-Eingabetyp. alphaExperimentell-
Gültig nur für den
color-Eingabetyp, dasalpha-Attribut ermöglicht es dem Endbenutzer, die Deckkraft der ausgewählten Farbe festzulegen. alt-
Gültig nur für den
image-Button, dasalt-Attribut bietet einen Alternativtext für das Bild und zeigt den Wert des Attributs an, wenn das Bildsrcfehlt oder anderweitig nicht geladen wird. Siehe den image-Eingabetyp. autocapitalize-
Steuert, ob eingegebener Text automatisch großgeschrieben wird und, falls ja, in welcher Weise. Siehe die
autocapitalizeGlobale Attribute-Seite für mehr Informationen. autocomplete-
(Kein Boolean-Attribut!) Das
autocomplete-Attribut nimmt als Wert einen Leerzeichen-getrennten String an, der beschreibt, welche, wenn überhaupt, Art von Autovervollständigungsfunktionalität die Eingabe bieten soll. Eine typische Implementierung für Autovervollständigung erinnert sich an zuvor eingetragene Werte in dasselbe Eingabefeld, aber komplexere Formen der Autovervollständigung können existieren. Beispielsweise könnte ein Browser mit einer Geräteliste für Autovervollständigung für E-Mail-Adressen in einem E-Mail-Eingabefeld integrieren. 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 Auswirkung auf Eingabetypen, die keine numerischen oder Textdaten zurückgeben, da es für alle Eingabetypen außercheckbox,radio,fileoder eine der Schaltflächen gültig ist.Siehe das
autocomplete-Attribut für zusätzliche Informationen, einschließlich Informationen zur Passwortsicherheit und wieautocompletesich leicht beimhidden-Typ von den anderen Eingabetypen unterscheidet. autofocus-
Ein Boolean-Attribut, das, falls vorhanden, angibt, dass die Eingabe automatisch den Fokus haben soll, wenn die Seite fertig geladen wurde (oder wenn das
<dialog>-Element, 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 gesetzt wird, erhält das erste Element mit diesem Attribut den Fokus.Das
autofocus-Attribut kann nicht auf Eingaben des Typshiddenverwendet werden, da versteckte Eingaben nicht fokussiert werden können.Warnung: Automatisches Fokussieren auf ein Formularelement kann Menschen mit Sehbehinderungen, die Bildschirmlesetechnologie nutzen, und Menschen mit kognitiven Beeinträchtigungen verwirren. Wenn
autofocuszugewiesen ist, "teleportieren" Bildschirmleser ihre Benutzer zu der Formsteuerung, ohne sie vorher zu warnen.Verwenden Sie das
autofocus-Attribut mit überlegter Berücksichtigung der Zugänglichkeit. Das automatische Fokussieren auf ein Steuerelement kann dazu führen, dass die Seite beim Laden scrollt. Der Fokus kann auch auf einigen Touch-Geräten dazu führen, dass dynamische Tastaturen angezeigt werden. Während ein Bildschirmleser das Label der fokussierten Formsteuerung ankündigt, wird der Bildschirmleser nichts vor dem Label ankündigen, und der sehende Benutzer auf einem kleinen Gerät wird den durch den vorhergehenden Inhalt geschaffenen Kontext ebenfalls verpassen. capture-
Eingeführt in der HTML-Medienaufnahme-Spezifikation und gültig nur für den
file-Eingabetyp, dascapture-Attribut definiert, welches Medien – Mikrofon, Video oder Kamera – zum Aufnehmen einer neuen Datei für den Upload mit derfile-Upload-Steuerung verwendet werden sollten. Siehe den file-Eingabetyp. checked-
Gültig für beide
radio- undcheckbox-Typen,checkedist ein Boolean-Attribut. Wenn es bei einemradio-Typ vorhanden ist, zeigt es an, dass der Radiobutton der derzeit ausgewählte in der Gruppe der gleichnamigen Radiobuttons ist. Wenncheckedbei einemcheckbox-Typ vorhanden ist, zeigt es an, dass das Kontrollkästchen standardmäßig (beim Laden der Seite) aktiviert ist. Es zeigt nicht an, ob dieses Kontrollkästchen derzeit aktiviert ist: Wenn sich der Status des Kontrollkästchens ändert, spiegelt dieses Inhaltsattribut die Änderung nicht wider. (Nur dasHTMLInputElement-ssm checked IDL-Attribut wird aktualisiert.)Hinweis: Im Gegensatz zu anderen Eingabekontrollen werden der Wert eines Kontrollkästchens und eines Radiobuttons nur gesendet, wenn sie derzeit
checkedsind. Wenn sie das sind, werden der Name und der Wert der aktivierten Kontrollen gesendet.Wenn zum Beispiel ein Kontrollkästchen, dessen
namefruitist, einenvaluevoncherryhat und das Kontrollkästchen aktiviert ist, enthält die gesendete Formular-Datenfruit=cherry. Wenn das Kontrollkästchen nicht aktiv ist, ist es in den Formulardaten überhaupt nicht aufgeführt. Der Standardwert für Kontrollkästchen und Radiobuttons iston. colorspaceExperimentell-
Gültig nur für den
color-Eingabetyp, dascolorspace-Attribut gibt den Farbraum an, der vomtype="color"-Eingabefeld verwendet wird. Mögliche Aufzählungswerte sind:"limited-srgb": Die Farbe befindet sich im sRGB-Farbraum. Dies umfasstrgb(),hsl(),hwb()und<hex-color>-Werte. Der Farbwert ist auf 8-Bits pror-,g- undb-Komponente beschränkt. 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 Textausrichtung des Elements. Wenn es enthalten ist, werden mit der Formsteuerung zwei Name/Wert-Paare übermittelt: 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-Paarfruit=cherryals auch dasdirname/direction-Paarfruit-dir=ltrgesendet werden. Für weitere Informationen siehe dasdirname-Attribut. disabled-
Ein Boolean-Attribut, das, falls vorhanden, angibt, dass der Benutzer nicht mit der Eingabe interagieren sollte. Deaktivierte Eingaben werden typischerweise in einer schwächeren Farbe oder mit einer anderen Form von Hinweis darauf dargestellt, dass das Feld nicht verwendet werden kann.
Insbesondere empfangen deaktivierte Eingaben das
click-Ereignis nicht, und deaktivierte Eingaben werden nicht mit dem Formular übermittelt.Hinweis: Auch wenn es von der Spezifikation nicht erforderlich ist, wird Firefox standardmäßig den dynamischen deaktivierten Status eines
<input>über Seitenladevorgänge hinweg beibehalten. Verwenden Sie dasautocomplete-Attribut, um diese Funktion zu steuern. form-
Eine Zeichenkette, die das
<form>-Element spezifiziert, mit dem die Eingabe verbunden ist (d.h. ihr Formulareigentümer). Der Wert dieser Zeichenkette, falls vorhanden, muss mit derideines<form>-Elements im selben Dokument übereinstimmen. Wenn dieses Attribut nicht angegeben ist, wird das<input>-Element mit dem nächstgelegenen umschließenden Formular verknüpft, falls vorhanden.Das
form-Attribut ermöglicht es Ihnen, eine Eingabe an beliebiger Stelle im Dokument zu platzieren, aber sie in einem Formular an einer anderen Stelle im Dokument einzuschließen.Hinweis: Eine Eingabe kann nur einem Formular zugeordnet werden.
formaction-
Gültig nur für die
image- undsubmit-Eingabetypen. Weitere Informationen finden Sie im submit-Eingabetyp. formenctype-
Gültig nur für die
image- undsubmit-Eingabetypen. Weitere Informationen finden Sie im submit-Eingabetyp. formmethod-
Gültig nur für die
image- undsubmit-Eingabetypen. Weitere Informationen finden Sie im submit-Eingabetyp. formnovalidate-
Gültig nur für die
image- undsubmit-Eingabetypen. Weitere Informationen finden Sie im submit-Eingabetyp. formtarget-
Gültig nur für die
image- undsubmit-Eingabetypen. Weitere Informationen finden Sie im submit-Eingabetyp. height-
Gültig nur für den
image-Eingabe-Button, dieheightist die Höhe der Bilddatei, die als grafischer Absende-Button angezeigt werden soll. Weitere Informationen finden Sie im image-Eingabetyp. id-
Globales Attribut, das für alle Elemente, einschließlich aller Eingabetypen, gültig ist und eine eindeutige Kennung (ID) definiert, die im gesamten Dokument einzigartig sein muss. Sein Zweck ist es, das Element bei der Verlinkung zu identifizieren. Der Wert wird als Wert des
for-Attributs des<label>verwendet, um das Label mit dem Formsteuerelement zu verknüpfen. Weitere Informationen finden Sie im<label>-Element. inputmode-
Globaler Wert, der für alle Elemente gültig ist und einen Hinweis an Browser zur Art der virtuellen Tastaturkonfiguration gibt, die beim Bearbeiten dieses Elements oder seines Inhalts verwendet werden soll. Werte beinhalten
none,text,tel,url,email,numeric,decimalundsearch. list-
Der Wert, der dem
list-Attribut zugewiesen ist, sollte dieideines im selben Dokument befindlichen<datalist>-Elements sein. Die<datalist>liefert eine Liste vordefinierter Werte, die dem Benutzer für diese Eingabe vorgeschlagen werden. Alle Werte in der Liste, die mit demtypenicht kompatibel sind, sind nicht in den vorgeschlagenen Optionen enthalten. Die bereitgestellten Werte sind Vorschläge, keine Anforderungen: Benutzer können aus dieser vordefinierten Liste auswählen oder einen anderen Wert angeben.Es ist gültig bei
text,search,url,tel,email,date,month,week,time,datetime-local,number,rangeundcolor.Laut den Spezifikationen wird das
list-Attribut nicht vonhidden,password,checkbox,radio,fileoder einer der Schaltflächen unterstützt.Abhängig vom Browser kann der Benutzer eine benutzerdefinierte Farbpalette vorgeschlagen bekommen, Ticks entlang einer Reichweite oder sogar eine Eingabe, die wie ein
<select>geöffnet wird, aber es den Eintritt weiterer nicht aufgeführter Werte ermöglicht. Besuchen Sie die Browser-Kompatibilität-Tabelle für die anderen Eingabetypen.Weitere Informationen finden Sie im
<datalist>-Element. max-
Gültig für
date,month,week,time,datetime-local,numberundrange, es definiert den größten Wert innerhalb des Bereichs der zulässigen Werte. Wenn der in das Element eingetragenevaluemehr als dieser ist, scheitert das Element an der Einschränkungsvalidierung. Wenn der Wert desmax-Attributs keine Zahl ist, dann hat das Element keinen Maximalwert.Es gibt einen Sonderfall: wenn der Datentyp periodisch ist (wie für Daten oder Zeiten), kann der Wert von
maxniedriger sein als der Wert vonmin, was bedeutet, dass der Bereich übergehen kann; zum Beispiel ermöglicht dies die Angabe eines Zeitbereichs von 22 Uhr bis 4 Uhr. maxlength-
Gültig für
text,search,url,tel,emailundpassword, es definiert die maximale Zeichenfolgelä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 oder ein ungültiger Wert spezifiziert ist, hat das Feld keine maximale Länge. Dieser Wert muss auch größer oder gleich dem Wert vonminlengthsein.Die Eingabe wird an der Einschränkungsvalidierung scheitern, wenn die Länge des in das Feld eingegebenen Textes länger als
maxlengthUTF-16_Code-Einheiten ist. Standardmäßig verhindern Browser, dass Benutzer mehr Zeichen eingeben, als dasmaxlength-Attribut erlaubt. 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,numberundrange, es definiert den kleinsten Wert innerhalb des Bereichs der zulässigen Werte. Wenn der in das Element eingetragenevalueweniger als dieser ist, scheitert das Element an der Einschränkungsvalidierung. Wenn der Wert desmin-Attributs keine Zahl ist, dann hat das Element keinen Mindestwert.Dieser Wert muss kleiner oder gleich dem Wert des
max-Attributs sein. Wenn dasmin-Attribut vorhanden ist, aber nicht spezifiziert oder ungültig ist, wird keinmin-Wert angewendet. Wenn dasmin-Attribut gültig ist und ein nicht-leerer Wert geringer ist als das Minimum, das vommin-Attribut erlaubt wird, 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 für Daten oder Zeiten), kann der Wert von
maxniedriger sein als der Wert vonmin, was bedeutet, dass der Bereich übergehen kann; zum Beispiel ermöglicht dies die Angabe eines Zeitbereichs von 22 Uhr bis 4 Uhr. minlength-
Gültig für
text,search,url,tel,emailundpassword, es definiert die minimale Zeichenfolgelänge (gemessen in UTF-16_Code-Einheiten), die der Benutzer in das Eingabefeld eingetragen kann. Dies muss ein nicht-negativer ganzzahliger Wert sein, der kleiner oder gleich dem durchmaxlengthangegebenen Wert ist. Wenn keinminlengthangegeben oder ein ungültiger Wert spezifiziert ist, hat die Eingabe keine Mindestlänge.Die Eingabe wird an der Einschränkungsvalidierung scheitern, wenn die Länge des in das Feld eingegebenen Textes kürzer als
minlengthUTF-16_Code-Einheiten ist, was die Formularübermittlung verhindert. Einschränkungsvalidierung wird nur angewendet, wenn der Wert durch den Benutzer geändert wird. Siehe Client-seitige Validierung für weitere Informationen. multiple-
Das Boolean-
multiple-Attribut, wenn gesetzt, bedeutet, dass der Benutzer durch Kommas getrennte E-Mail-Adressen in das E-Mail-Widget eingeben oder mehr als eine Datei mit demfile-Eingang auswählen kann. Siehe den email- und den file-Eingabetyp. name-
Eine Zeichenkette, die einen Namen für das Eingabesteuerelement spezifiziert. Dieser Name wird zusammen mit dem Wert der Steuerung gesendet, wenn die Formulardaten übermittelt werden.
Betrachten Sie den
name-Attribut als obligatorisch (auch wenn er es nicht ist). Wenn eine Eingabe keinen spezifiziertennamehat odernameleer ist, wird der Wert der Eingabe nicht mit dem Formular gesendet! (Deaktivierte Steuerelemente, nicht ausgewählte Radiobuttons, nicht aktivierte Kontrollkästchen und Zurücksetz-Schaltflächen werden ebenfalls nicht gesendet.)Es gibt zwei Sonderfälle:
_charset_: Wenn es als Name eines<input>-Elements des Typs hidden verwendet wird, wird dervalueder Eingabe automatisch vom User-Agent auf die zur Übermittlung 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 in einer gleichnamigen Gruppe von Radiobuttons kann gleichzeitig ausgewählt werden. Wenn ein Radiobutton in dieser Gruppe ausgewählt wird, werden alle anderen derzeit ausgewählten Radiobuttons in derselben Gruppe automatisch abgewählt. Der Wert dieses einen ausgewählten Radiobuttons wird zusammen mit dem Namen gesendet, wenn das Formular übermittelt wird,
Wenn durch eine Serie gleichnamiger Gruppen von Radiobuttons getabt wird und einer ausgewählt ist, erhält dieser den Fokus. Wenn sie nicht in der Quellreihenfolge gruppiert sind, wenn einer der Gruppe ausgewählt ist, beginnt das Tabben in die Gruppe, wenn der erste der Gruppe erreicht wird, und überspringt alle, die nicht ausgewählt sind. Mit anderen Worten, wenn einer ausgewählt ist, überspringt das Tabben die nicht ausgewählten Radiobuttons in der Gruppe. Wenn keiner ausgewählt ist, erhält die Radiobutton-Gruppe den Fokus, wenn der erste der gleichnamigen Gruppe erreicht wird.
Sobald einer der Radiobuttons in einer Gruppe den Fokus hat, wird mit den Pfeiltasten durch alle Radiobuttons des gleichen Namens navigiert, auch wenn die Radiobuttons nicht zusammen in der Quellreihenfolge angeordnet sind.
Wenn ein Eingabeelement einen
nameerhält, wird dieser Name zu einer Eigenschaft desHTMLFormElement.elements-Eigentums des Eigentümerformulars. 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 wird, wird
guestNamedasHTMLInputElementfür dasguest-Feld undhatSizedas Objekt für dashat-size-Feld sein.Warnung: Vermeiden Sie es, Formularelementen einen
namezu geben, der einer eingebauten Eigenschaft des Formulars entspricht, da Sie dann die vordefinierte Eigenschaft oder Methode mit dieser Referenz auf das entsprechende Eingabeelement überschreiben würden. pattern-
Gültig für
text,search,url,tel,emailundpassword, daspattern-Attribut wird verwendet, um einen regulären Ausdruck zu kompilieren, dem dervalueder Eingabe entsprechen muss, damit der Wert die Einschränkungsvalidierung besteht. Es muss ein gültiger JavaScript-Regulärer Ausdruck sein, wie sie vomRegExp-Typ verwendet werden, und wie sie in unserem Leitfaden zu regulären Ausdrücken dokumentiert sind. Keine Schrägstriche sollten um den Mustertetailssatz angegeben werden. Beim Kompilieren des regulären Ausdrucks:- das Muster wird implizit mit
^(?:und)$umgeben, sodass der Abgleich gegen den gesamten Eingabewert erforderlich ist, d.h.^(?:<pattern>)$. - das
'v'-Flag wird angegeben, sodass das Muster als Sequenz von Unicode-Codepunkten behandelt wird, anstatt als ASCII.
Wenn das
pattern-Attribut vorhanden ist, aber nicht spezifiziert ist oder ungültig ist, wird kein regulärer Ausdruck angewendet und dieses Attribut wird vollständig ignoriert. Wenn daspattern-Attribut gültig ist und ein nicht-leerer Wert nicht dem Muster entspricht, verhindert die Einschränkungsvalidierung die Formularübermittlung. Wenn diemultiplevorhanden ist, wird der kompilierte reguläre Ausdruck gegen jeden durch Kommas getrennten Wert abgeglichen.Hinweis: Wenn Sie das
pattern-Attribut verwenden, informieren Sie den Benutzer über das erwartete Format durch Hinzufügen von erläuterndem Text in der Nähe. Sie können auch eintitle-Attribut einschließen, um zu erläutern, welche Anforderungen erfüllt werden müssen, um das Muster zu entsprechen; die meisten Browser werden diesen Titel als Tooltip anzeigen. Die sichtbare Erklärung ist erforderlich für Barrierefreiheit. Der Tooltip ist eine Erweiterung.Siehe Client-seitige Validierung für weitere Informationen.
- das Muster wird implizit mit
placeholder-
Gültig für
text,search,url,tel,email,passwordundnumber, bietet dasplaceholder-Attribut einen kurzen Hinweis für den Benutzer, welche Art von Information im Feld erwartet wird. Es sollte ein Wort oder ein kurzer Satz sein, der einen Hinweis auf den erwarteten Datentyp gibt, anstatt einer Erklärung oder Aufforderung. Der Text darf keine Wagenrückläufe oder Zeilenumbrüche enthalten. Wenn erwartet wird, dass ein Feld den Vornamen eines Benutzers aufzeichnet und sein Label "Vorname" lautet, könnte eine geeignete Platzhalteranzeige "z.B., Mustafa" sein.Hinweis: Das
placeholder-Attribut ist nicht so semantisch nützlich wie andere Wege, um Ihr Formular zu erklären, und kann unerwartete technische Probleme mit Ihrem Inhalt hervorrufen. Siehe Labels für weitere Informationen. popovertarget-
Wandelt ein
<input type="button">-Element in einen Popover-Steuerungsknopf um; nimmt die ID des zu steuernden Popover-Elements als Wert. Weitere Details finden Sie auf der Popover-API-Landeseite. Die Einrichtung einer Beziehung zwischen einem Popover und seinem Auslöserknopf mit dempopovertarget-Attribut hat zwei weitere nützliche Wirkungen:- Der Browser erstellt eine implizite
aria-details- undaria-expanded-Beziehung zwischen Popover und Auslöser und platziert das Popover in einer logischen Position in der Reihenfolge der Tastaturfokus-Navigation, wenn es angezeigt wird. Dies macht das Popover zugänglicher für Tastaturnutzer und Benutzer von unterstützenden Technologien (AT-Nutzer) (siehe auch Popover-Accessibility-Features). - Der Browser erstellt eine implizite Ankerreferenz zwischen dem Popover und seiner Steuerung, was es sehr bequem macht, Popover durch CSS-Ankerpositionierung relativ zu ihren Steuerungen zu positionieren. Siehe Popover-Ankerpositionierung für weitere Details.
- Der Browser erstellt eine implizite
popovertargetaction-
Gibt die Aktion an, die von einem kontrollierenden Popover-Element
<input type="button">ausgeführt werden soll. Mögliche Werte sind:"hide"-
Der Knopf wird ein sichtbares Popover ausblenden. Wenn Sie versuchen, ein bereits ausgeblendetes Popover auszublenden, wird keine Aktion ausgeführt.
"show"-
Der Knopf wird ein verstecktes Popover anzeigen. Wenn Sie versuchen, ein bereits angezeigtes Popover anzuzeigen, wird keine Aktion ausgeführt.
"toggle"-
Der Knopf wird ein Popover zwischen angezeigten und versteckten Zuständen umschalten. Wenn das Popover versteckt ist, wird es angezeigt; wenn das Popover angezeigt wird, wird es versteckt. Wenn
popovertargetactionweggelassen wird, ist"toggle"die Standardaktion, die von der Steuerschaltfläche ausgeführt wird.
readonly-
Ein Boolean-Attribut, das, falls vorhanden, angibt, dass der Benutzer den Wert der Eingabe nicht bearbeiten können sollte. Das
readonly-Attribut wird von den Eingabetypentext,search,url,tel,email,date,month,week,time,datetime-local,numberundpasswordunterstützt.Für weitere Informationen siehe das HTML-Attribut:
readonly. required-
requiredist ein Boolean-Attribut, das, falls vorhanden, angibt, dass der Benutzer einen Wert für die Eingabe spezifizieren muss, bevor das Eigentümerformular gesendet werden kann. Dasrequired-Attribut wird von den Eingabetypentext,search,url,tel,email,date,month,week,time,datetime-local,number,password,checkbox,radioundfileunterstützt.Für weitere Informationen siehe Client-seitige Validierung und das HTML-Attribut:
required. size-
Gültig für
email,password,tel,urlundtext, dassize-Attribut spezifiziert, wie viel der Eingabe angezeigt wird. Grundsätzlich erzeugt es dasselbe Ergebnis wie das Setzen der CSS-width-Eigenschaft mit ein paar Besonderheiten. Die tatsächliche Einheit des Werts hängt vom Eingabetyp ab. Fürpasswordundtextist es eine Anzahl von Zeichen (oderem-Einheiten) mit einem Standardwert von20, und für andere ist es Pixel (oderpx-Einheiten). CSSwidthhat Vorrang vor demsize-Attribut. src-
Gültig nur für den
image-Eingabe-Button, dassrcist ein String, der die URL der Bilddatei angibt, die als grafischer Absende-Button angezeigt werden soll. Weitere Informationen finden Sie im image-Eingabetyp. step-
Gültig für
date,month,week,time,datetime-local,numberundrange, dasstep-Attribut ist eine Zahl, die die Granularität angibt, der der Wert entsprechen muss. Es sind nur Werte gültig, die ein ganzzahliger Vielfaches der Schritte des Step-Basiswerts sind. Die Step-Basis istmin, wenn angegeben,valueansonsten, oder0, wenn keines der beiden angegeben ist (außer fürweek, das eine Standard-Step-Basis von −259,200,000 hat, was dem Beginn der Woche1970-W01entspricht).Wenn nicht explizit eingeschlossen:
stephat standardmäßig den Wert 1 fürnumberundrange.- Jeder Eingabetyp für Datum/Uhrzeit hat einen Standard-
step-Wert, der für den Typ angemessen ist; siehe die individuellen Eingabe-Seiten:date,datetime-local,month,timeundweek.
Der Wert muss eine positive Zahl sein – ganze Zahl oder Gleitkommazahl – oder der spezielle Wert
any, was bedeutet, dass kein Schritt erforderlich ist und jeder Wert zulässig ist (mit Ausnahme anderer Beschränkungen, wieminundmax).Zum Beispiel, wenn Sie
<input type="number" min="10" step="2">haben, dann ist jede ganze Zahl oder größer,10oder mehr, gültig. Wenn ausgelassen,<input type="number">, ist jede ganze Zahl gültig, aber Gleitkommazahlen (wie4.2) sind nicht gültig, weilstepstandardmäßig1ist. Für4.2gültig zu sein, 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 vom Benutzer eingegebenen Daten nicht mit der Step-Konfiguration übereinstimmen, wird der Wert bei der Einschränkungsvalidierung als ungültig angesehen und wird die
:invalid-Pseudoklasse treffen.Siehe Client-seitige Validierung für weitere Informationen.
tabindex-
Globales Attribut, gültig für alle Elemente, einschließlich aller Eingabetypen, ein ganzzahliges Attribut, das angibt, ob das Element Eingabefokus erhalten kann (fokussierbar ist), ob es an der sequentiellen Tastaturnavigation teilnehmen sollte. Da alle Eingabetyps mit Ausnahme der versteckten eingabefokussierbaren sind, sollte dieses Attribut nicht auf Formularelementen verwendet werden, da dies die Verwaltung der Fokussierreihenfolge für alle Elemente im Dokument erfordern würde, mit dem Risiko, die Benutzerfreundlichkeit und Barrierefreiheit 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 beratende Informationen im Zusammenhang mit dem Element darstellt, zu dem es gehört. Solche Informationen können typischerweise, aber nicht unbedingt, dem Benutzer als Tooltip präsentiert werden. Der Titel sollte NICHT als primäre Erklärung des Zwecks des Formsteuerelements verwendet werden. Verwenden Sie stattdessen das
<label>-Element mit einemfor-Attribut, das auf dasid-Attribut des Steuerelements gesetzt wird. Siehe Labels unten. type-
Eine Zeichenkette, die den Typ des zu rendernden Steuerelements angibt. Um beispielsweise ein Kontrollkästchen zu erstellen, wird ein Wert von
checkboxverwendet. Wenn ausgelassen (oder ein unbekannter Wert angegeben wird), wird der Eingabetyptextverwendet, wodurch ein Klartext-Eingabefeld erstellt wird.Zulässige Werte sind in den Eingabetypen weiter oben aufgeführt.
value-
Der Wert des Eingabesteuerelements. Wenn es im HTML angegeben wird, ist dies der anfängliche Wert, und von nun an kann es jederzeit mit JavaScript geändert oder abgerufen werden, indem auf die
value-Eigenschaft des entsprechendenHTMLInputElement-Objekts zugegriffen wird. Dasvalue-Attribut ist immer optional, sollte jedoch fürcheckbox,radioundhiddenals verpflichtend angesehen werden. width-
Gültig nur für den
image-Eingabe-Button, diewidthist die Breite der Bilddatei, die als grafischer Absende-Button angezeigt werden soll. Weitere Informationen finden Sie im image-Eingabetyp.
Nicht-standardisierte Attribute
Die folgenden nicht-standardisierten Attribute sind auch in einigen Browsern verfügbar. Als allgemeine Regel sollten Sie sie vermeiden, es sei denn, es ist nicht anders möglich.
| Attribut | Beschreibung |
|---|---|
incremental |
Ob oder nicht wiederholt [`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, etc.). |
mozactionhint
Veraltet
|
Ein String, der angibt, welche Art von Aktion ausgeführt wird, wenn der Benutzer die Eingabetaste oder Return-Taste drückt, während er das Feld bearbeitet; dies wird verwendet, um eine geeignete Bezeichnung für diese Taste auf einer virtuellen Tastatur zu bestimmen. Da dieses Attribut veraltet ist, verwenden Sie |
orient |
Setzt die Ausrichtung des Bereichreglers. Nur Firefox.. |
results |
Die maximale Anzahl von Einträgen, die in der Dropdown-Liste früherer Suchanfragen angezeigt werden sollten. Nur Safari. |
webkitdirectory
|
Ein Boolean, der angibt, ob nur das Auswählen eines Verzeichnisses (oder Verzeichnisse, wenn multiple ebenfalls vorhanden ist) dem Benutzer möglich gemacht werden soll.
|
incrementalNicht standardisiert-
Das Boolean-Attribut
incrementalist eine WebKit- und Blink-Erweiterung (daher unterstützt von Safari, Opera, Chrome, etc.), die, falls vorhanden, dem User-Agent vorgibt, die Eingabe als Live-Suche zu verarbeiten. Während der Benutzer den Wert des Feldes bearbeitet, sendet der User-Agentsearch-Ereignisse an dasHTMLInputElement-Objekt, das das Suchfeld repräsentiert. Dies ermöglicht es Ihrem Code, die Suchergebnisse in Echtzeit zu aktualisieren, während der Benutzer die Suche bearbeitet.Wenn
incrementalnicht angegeben ist, wird dassearch-Ereignis nur gesendet, wenn der Benutzer explicit ein Suchvorgang auslöst (wie etwa durch Drücken der Eingabetaste oder Return-Taste, während er das Feld bearbeitet).Das
search-Ereignis wird so rate-begrenzt, dass es nicht häufiger gesendet wird als ein implementierungsdefiniertes Intervall. orientNicht standardisiert-
Ähnlich der nicht-standardisierten -moz-orient CSS-Eigenschaft, die die
<progress>- und<meter>-Elemente betrifft, definiert dasorient-Attribut die Ausrichtung des Bereichreglers. Werte beinhaltenhorizontal, was bedeutet, dass der Bereich horizontal gerendert wird, undvertical, wo der Bereich vertikal gerendert wird. Siehe Erstellen vertikaler Formkontrollen für einen modernen Ansatz zum Erstellen vertikaler Formkontrollen. resultsNicht standardisiert-
Das
results-Attribut wird nur von Safari unterstützt und ist ein numerischer Wert, der es Ihnen ermöglicht, die maximale Anzahl von Einträgen zu überschreiben, die in der nativen Dropdown-Menueingabe des<input>-Elements vorheriger Suchanfragen angezeigt werden sollen.Der Wert muss eine nicht-negative Dezimalzahl sein. Wenn nicht angegeben oder ein ungültiger Wert vorhanden ist, wird die standardmäßige maximale Anzahl von Einträgen des Browsers verwendet.
webkitdirectoryNicht standardisiert-
Das Boolean-
webkitdirectory-Attribut, falls vorhanden, gibt an, dass der Benutzer nur Verzeichnisse in der Dateiauswahloberfläche auswählen darf. Weitere Details und Beispiele finden Sie unterHTMLInputElement.webkitdirectory.Obwohl ursprünglich nur für WebKit-basierte Browser implementiert, ist
webkitdirectoryauch in Microsoft Edge sowie Firefox 50 und später nutzbar. Auch wenn es eine relativ breite Unterstützung hat, ist es dennoch nicht standardisiert und sollte nur verwendet werden, wenn Sie keine alternative Lösung haben.
Methoden
Die folgenden Methoden werden durch das HTMLInputElement Interface bereitgestellt, das <input> Elemente im DOM repräsentiert. Auch verfügbar sind die Methoden, die von den übergeordneten Interfaces, HTMLElement, Element, Node und EventTarget, spezifiziert werden.
checkValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht; andernfalls wirdfalsezurückgegeben und eininvalidEreignis wird am Element ausgelöst. reportValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht; andernfalls wirdfalsezurückgegeben, eininvalidEreignis am Element ausgelöst und (falls das Ereignis nicht abgebrochen wird) das Problem dem Benutzer gemeldet. select()-
Wählt den gesamten Inhalt des
<input>Elements aus, wenn der Inhalt wählbar ist. Bei Elementen ohne wählbaren Textinhalt (wie zum Beispiel visuelle Farbwähler oder Kalenderdatums-Eingaben) macht diese Methode nichts. 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 eine gegebene Zeichenkette. Ein
selectModeParameter steht zur Verfügung, um zu steuern, wie der vorhandene Inhalt betroffen ist. setSelectionRange()-
Wählt den angegebenen Zeichenbereich innerhalb eines textuellen Eingabeelements aus. Macht nichts für Eingaben, die nicht als Texteingabefelder dargestellt werden.
showPicker()-
Zeigt den Browser-Wähler für das Eingabeelement an, der normalerweise angezeigt wird, wenn das Element ausgewählt wird, jedoch 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
Eingaben, die ersetzte Elemente sind, haben einige Merkmale, die auf Nicht-Formular-Elemente nicht anwendbar sind. Es gibt CSS-Selektoren, die speziell auf Formularsteuerelemente basierend auf ihren UI-Merkmalen, auch bekannt als UI-Pseudoklassen, abzielen können. Das Eingabeelement kann auch nach Typ mit Attributselektoren anvisiert werden. Es gibt einige Eigenschaften, die besonders nützlich sind.
UI-Pseudoklassen
| Pseudoklasse | Beschreibung |
|---|---|
:enabled |
Jedes derzeit aktivierbare Element, das aktiviert werden kann (ausgewählt, angeklickt werden, eingetippt werden, etc.) oder Fokus akzeptiert und auch einen deaktivierten Zustand hat, in dem es nicht aktiviert werden oder Fokus akzeptieren kann. |
:disabled |
Jedes derzeit deaktivierte Element, das einen aktivierbaren Zustand hat, was bedeutet, dass es ansonsten aktiviert werden (ausgewählt, angeklickt werden, eingetippt werden, etc.) oder Fokus akzeptieren könnte, wenn es nicht deaktiviert wäre. |
:read-only |
Element, das vom Benutzer nicht bearbeitbar ist |
: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 in einer Gruppe von verwandten Elementen der Standard sind. Passt zu checkbox und radio Eingabetypen, die beim Seitenladen oder beim Rendern ausgewählt waren. |
:checked |
Passt zu checkbox und radio Eingabetypen, die derzeit ausgewählt sind (und der <option> in einem <select>, die derzeit ausgewählt ist).
|
:indeterminate |
checkbox Elemente, deren indeterminate-Eigenschaft durch JavaScript auf true gesetzt ist, radio Elemente, wenn alle Radiobuttons mit dem gleichen Namenwert im Formular nicht ausgewählt sind, und <progress> Elemente im indeterminierten Zustand.
|
:valid |
Formularelemente, auf die eine Gültigkeitsprüfung angewendet werden kann und die derzeit gültig sind. |
:invalid |
Formularelemente, auf die eine Gültigkeitsprüfung 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 und die 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 nicht den step Einschränkungen entspricht.
|
:required |
<input>, <select>, oder <textarea> Element, das das required Attribut eingestellt hat. Passt nur auf Elemente, die erforderlich sein können. Das Attribut, das auf ein nicht erforderliches Element angewendet wird, führt nicht zu einer Übereinstimmung.
|
:optional |
<input>, <select>, oder <textarea> Element, das das required Attribut nicht eingestellt hat. Passt nicht auf Elemente, die nicht erforderlich sein können.
|
:blank |
<input> und <textarea> Elemente, die derzeit keinen Wert haben.
|
:user-invalid |
Ähnlich wie :invalid, wird jedoch bei Verlassen aktiviert. Passt zu ungültigen Eingaben, jedoch nur nach Benutzerinteraktion, wie 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 Wähler anzeigen, aus dem der Benutzer einen Wert auswählen kann (zum Beispiel <input type="color">) — aber nur, wenn das Element im offenen Zustand ist, d.h. wenn der Wähler angezeigt wird.
|
Beispiel für Pseudoklassen
Wir können ein Kontrollkästchen-Label basierend darauf stylen, ob das Kontrollkästchen aktiviert ist oder nicht. In diesem Beispiel stylen wir die color und font-weight des <label>, das direkt nach einer aktivierten Eingabe kommt. Wir haben keine Stile angewendet, wenn die input nicht aktiviert ist.
input:checked + label {
color: red;
font-weight: bold;
}
Attributselektoren
Es ist möglich, verschiedene Typen von Formular-Steuerelementen basierend auf ihrem type zu adressieren, indem man Attributselektoren verwendet. CSS-Attributselektoren passen zu Elementen basierend auf entweder nur der Anwesenheit 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 als durchscheinend oder hellgrau. Das ::placeholder Pseudoelement ist der placeholder Text der Eingabe. Es kann mit einem begrenzten Satz von CSS-Eigenschaften gestylt werden.
::placeholder {
color: blue;
}
Nur der Teil von CSS-Eigenschaften, die auf das ::first-line Pseudoelement angewendet werden können, kann in einer Regel verwendet werden, die ::placeholder in ihrem Selektor verwendet.
caret-color
Eine spezifische Eigenschaft, die sich auf texteingabebezogene Elemente bezieht, ist die CSS-Eigenschaft caret-color, die es ermöglicht, die Farbe zu setzen, die zum Zeichnen 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;
}
Ergebnis
Feldgröße
Die field-sizing Eigenschaft ermöglicht es Ihnen, das Größenverhalten von Formulareingaben zu steuern (d.h. sie haben standardmäßig eine bevorzugte Größe). Diese Eigenschaft ermöglicht es Ihnen, das Standardverhalten zu überschreiben, sodass Formularelemente in der Größe an ihren Inhalt angepasst werden.
Diese Eigenschaft wird üblicherweise verwendet, um Formularfelder zu erstellen, die ihren Inhalt einschränken und wachsen, während mehr Text eingegeben wird. Dies funktioniert mit Eingabetypen, die direkte Texteingaben akzeptieren (z.B. text und url), Eingabetyp file, und <textarea> Elemente.
object-position and object-fit
In bestimmten Fällen (typischerweise nicht-textuelle Eingaben und spezialisierte Schnittstellen betreffend) ist das <input> Element ein ersetztes Element. Wenn es das ist, können die Position und Größe innerhalb seines Rahmens mit den CSS-Eigenschaften object-position und object-fit angepasst werden.
Styling
Für weitere Informationen darüber, wie man Elemente in HTML einfärbt, siehe:
Siehe auch:
Zusätzliche Funktionen
>Labels
Labels werden benötigt, um unterstützenden Text mit einem <input> zu verknüpfen. Das <label> Element bietet erklärende Informationen über ein Formularfeld, das immer angebracht ist (abgesehen von etwaigen Layout-Bedenken). Es ist nie eine schlechte Idee, ein <label> zu verwenden, um zu erklären, was in ein <input> oder <textarea> eingegeben werden soll.
Zugehörige Labels
Die semantische Paarung von <input> und <label> Elementen ist nützlich für unterstützende Technologien wie Bildschirmleser. Indem man sie mit dem for Attribut des <label> verbindet, verknüpfen Sie das Label mit der Eingabe so, dass Bildschirmleser Eingaben den Benutzern präziser beschreiben können.
Es reicht nicht aus, nur einfachen Text neben das <input> Element zu setzen. Vielmehr erfordert die Benutzbarkeit und Zugänglichkeit die Aufnahme eines impliziten oder expliziten <label>:
<!-- inaccessible -->
<p>Enter your name: <input id="name" type="text" size="30" /></p>
<!-- implicit label -->
<p>
<label>Enter your name: <input id="name" type="text" size="30" /></label>
</p>
<!-- explicit label -->
<p>
<label for="name">Enter your name: </label>
<input id="name" type="text" size="30" />
</p>
Das erste Beispiel ist unzugänglich: Es besteht keine Beziehung zwischen der Eingabeaufforderung und dem <input> Element.
Zusätzlich zu einem zugänglichen Namen bietet das Label eine größere Zielzone für Maus- und Touchscreen-Nutzer zum Klicken oder Berühren. Indem ein <label> mit einem <input> verbunden wird, wird entweder durch Klicken auf das eine oder das andere die <input> fokussiert. Wenn Sie einfachen Text verwenden, um Ihre Eingabe zu "labeln", passiert das nicht. Die Eingabeaufforderung als Teil des Aktivierungsbereichs des Eingabefelds zu haben, ist hilfreich für Personen mit motorischen Kontrollbedingungen.
Als Webentwickler ist es wichtig, dass wir nie davon ausgehen, dass Menschen all das wissen, was wir wissen. Die Vielfalt der Menschen, die das Web nutzen—und in der Erweiterung Ihre Website—garantiert praktisch, dass einige Ihrer Webseitenbesucher Abweichungen in den Denkprozessen und/oder Umständen haben, die sie dazu führen, Ihre Formulare ohne klar und korrekt präsentierte Labels sehr unterschiedlich zu interpretieren.
Platzhalter sind nicht zugänglich
Das placeholder Attribut ermöglicht es Ihnen, Text anzugeben, der im Inhaltsbereich des <input> Elements selbst erscheint, wenn es leer ist. Der Platzhalter sollte nie 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 als Erklärung oder Aufforderung.
Der Platzhalter ist nicht nur für Bildschirmleser nicht zugänglich, sondern verschwindet auch, sobald der Benutzer einen Text in das Formularelement eingibt, oder wenn das Formularelement bereits einen Wert hat. Browser mit automatischen Seitenübersetzungsfunktionen können Attribute beim Übersetzen überspringen, was bedeutet, dass der placeholder möglicherweise nicht übersetzt wird.
Hinweis:
Verwenden Sie das placeholder Attribut nur, wenn es unvermeidlich ist. Wenn Sie ein <input> Element kennzeichnen müssen, verwenden Sie das <label> Element.
Client-seitige Validierung
Warnung:
Client-seitige Validierung ist nützlich, garantiert jedoch nicht, dass der Server gültige Daten erhält. Wenn die Daten in einem bestimmten Format vorliegen müssen, überprüfen Sie diese immer auch auf der Serverseite und geben Sie eine 400 HTTP-Antwort zurück, wenn das Format ungültig ist.
Neben der Verwendung von CSS, um Eingaben basierend auf den :valid oder :invalid UI-Stati basierend auf dem aktuellen Zustand jeder Eingabe zu gestalten, wie im Abschnitt UI-Pseudoklassen oben beschrieben, bietet der Browser eine Client-seitige Validierung bei einer (versuchten) Formularübermittlung. Bei der Eingabe, wenn ein Formularelement vorhanden ist, das nicht den Einschränkungen entspricht, werden unterstützende Browser eine Fehlermeldung an dem ersten fehlerhaften Formularelement anzeigen; eine Standardmeldung basierend auf dem Fehlerdatum oder eine von Ihnen festgelegte Nachricht.
Einige Eingabetypen und andere Attribute setzen Grenzen auf, welche Werte für eine gegebene 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. Mehrere Fehler könnten auftreten, darunter ein rangeUnderflow Fehler, wenn der Wert weniger als 2 ist, rangeOverflow wenn größer als 10, stepMismatch, wenn der Wert eine Zahl zwischen 2 und 10 ist, aber keine gerade Zahl (entspricht nicht den Anforderungen des step Attributs), oder typeMismatch, wenn der Wert keine Zahl ist.
Für die Eingabetypen, deren Bereich möglicher Werte periodisch ist (d.h. bei dem höchsten möglichen Wert, die Werte wieder zurück zum Anfang eingerollt werden, anstatt zu enden), können die Werte der max und min Eigenschaften umgedreht werden, was anzeigt, dass der Bereich der erlaubten Werte bei min beginnt, zurück zum niedrigsten möglichen Wert rollt und dann weitergeht, bis max erreicht wird. Dies ist besonders nützlich für Daten und Zeiten, wie wenn Sie den Bereich von 20:00 Uhr bis 8:00 Uhr erlauben möchten:
<input type="time" min="20:00" max="08:00" name="overnight" />
Spezifische Attribute und deren Werte können zu einem spezifischen Fehler in 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, wie durch das max Attribut definiert
|
maxlength |
[`validityState.tooLong`](/de/docs/Web/API/ValidityState/tooLong) |
Tritt auf, wenn die Anzahl der Zeichen größer ist als die durch das maxlength Attribut erlaubte Anzahl
|
min |
[`validityState.rangeUnderflow`](/de/docs/Web/API/ValidityState/rangeUnderflow) |
Tritt auf, wenn der Wert kleiner ist als der minimale Wert, wie durch das min Attribut definiert
|
minlength |
[`validityState.tooShort`](/de/docs/Web/API/ValidityState/tooShort) |
Tritt auf, wenn die Anzahl der Zeichen kleiner ist als die durch das minlength Attribut benötigte 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 nicht übereinstimmt.
|
required |
[`validityState.valueMissing`](/de/docs/Web/API/ValidityState/valueMissing) |
Tritt auf, wenn das required Attribut vorhanden, aber der Wert null ist, oder wenn ein Radio oder ein Kontrollkästchen nicht aktiviert ist.
|
step |
[`validityState.stepMismatch`](/de/docs/Web/API/ValidityState/stepMismatch) |
Der Wert entspricht nicht dem Schritt-Inkrement. Das Standard-Inkrement beträgt 1, sodass nur ganze Zahlen gültig sind, wenn type="number" ist, falls der Schritt nicht enthalten ist. step="any" wird diesen Fehler nie auslösen.
|
type |
[`validityState.typeMismatch`](/de/docs/Web/API/ValidityState/typeMismatch) |
Tritt auf, wenn der Wert nicht dem richtigen Typ entspricht, zum Beispiel eine E-Mail enthält kein @ oder eine URL hat kein Protokoll.
|
Wenn ein Formularelement nicht das required Attribut hat, ist kein Wert oder eine leere Zeichenkette nicht ungültig. Selbst wenn die oben genannten Attribute vorhanden sind, führt eine leere Zeichenkette nicht zu einem Fehler - mit Ausnahme von required.
Wir können Limits festlegen, welche Werte wir akzeptieren, und unterstützende Browser werden nativ diese Formularwerte validieren und den Benutzer benachrichtigen, wenn beim Versand ein Fehler auftritt.
Zusätzlich zu den in der obigen Tabelle beschriebenen Fehlern enthält das validityState Interface die Boolean-Leseeigenschaften badInput, valid, und customError. Das Gültigkeitsobjekt beinhaltet:
validityState.valueMissingvalidityState.typeMismatchvalidityState.patternMismatchvalidityState.tooLongvalidityState.tooShortvalidityState.rangeUnderflowvalidityState.rangeOverflowvalidityState.stepMismatchvalidityState.badInputvalidityState.validvalidityState.customError
Für jede dieser Boolean-Eigenschaften bedeutet ein Wert von true, dass der spezifizierte Grund, warum die Validierung fehlgeschlagen ist, zutrifft, mit Ausnahme der valid Eigenschaft, die true ist, wenn der Wert des Elements alle Einschränkungen einhält.
Wenn ein Fehler vorliegt, werden unterstützende Browser sowohl den Benutzer warnen als auch verhindern, dass das Formular abgesendet wird. Ein Hinweis der Vorsicht: Wenn ein benutzerdefinierter Fehler auf einen wahrheitswertigen Wert gesetzt wird (alles außer dem leeren String oder null), wird das Formular daran gehindert, abgeschickt zu werden. Wenn keine benutzerdefinierte Fehlermeldung vorhanden ist und keine der anderen Eigenschaften true zurückgibt, wird valid true, und das Formular kann abgesendet werden.
function validate(input) {
let validityState = input.validity;
if (validityState.valueMissing) {
input.setCustomValidity("A value is required");
} else if (validityState.rangeUnderflow) {
input.setCustomValidity("Your value is too low");
} else if (validityState.rangeOverflow) {
input.setCustomValidity("Your value is too high");
} else {
input.setCustomValidity("");
}
}
Die letzte Zeile, die die benutzerdefinierte Gültigkeitsmeldung auf den leeren String setzt, ist wichtig. Wenn der Benutzer einen Fehler macht und die Gültigkeit gesetzt wird, wird es so lange nicht abgeschickt, selbst wenn alle Werte gültig sind, bis die Nachricht null ist.
Beispiel für benutzerdefinierte 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 verwandten) Elementen 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 HTML-Formularvalidierungsfunktionen werden dies dazu bringen, eine Standardfehlermeldung anzuzeigen, wenn Sie versuchen, das Formular zu übermitteln, ohne ein gültiges Feld auszufüllen oder ein Muster nicht zu entsprechen.
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 rendert wie folgt:
Kurz gesagt:
- Wir überprüfen den gültigen Zustand des Eingabeelements jedes Mal, wenn sein Wert geändert wird, indem wir die
checkValidity()Methode über deninputEreignishandler ausführen. - Wenn der Wert ungültig ist, wird ein
invalidEreignis ausgelöst und dieinvalidEreignishandlerfunktion ausgeführt. Innerhalb dieser Funktion bestimmen wir, ob der Wert ungültig ist, weil er leer ist oder, weil er das Muster nicht erfüllt, mithilfe einesif ()Blocks und setzen eine benutzerdefinierte Gültigkeitsfehlermeldung. - Infolgedessen wird, wenn der Eingabewert beim Drücken der Senden-Schaltfläche ungültig ist, eine der benutzerdefinierten Meldungen angezeigt.
- Wenn er gültig ist, wird es, wie erwartet, abgesendet. Dafür muss die benutzerdefinierte Gültigkeit abgebrochen werden, indem
setCustomValidity()mit einem leeren String aufgerufen wird. Wir tun dies deshalb jedes Mal, wenn dasinputEreignis ausgelöst wird. Wenn Sie dies nicht tun und eine benutzerdefinierte Gültigkeit zuvor gesetzt wurde, wird die Eingabe als ungültig registriert, selbst wenn sie derzeit beim Versand einen gültigen Wert enthält.
Hinweis: Validieren Sie immer Eingabe-Constraints sowohl clientseitig als auch serverseitig. Constraint-Validierung beseitigt nicht die Notwendigkeit der Validierung auf der Server-Seite. Ungültige Werte können immer noch von älteren Browsern oder durch schlechte Akteure gesendet werden.
Hinweis:
Firefox unterstützte viele Versionen lang ein proprietäres Fehlerattribut — x-moz-errormessage —, das es Ihnen ermöglicht hat, benutzerdefinierte Fehlermeldungen auf ähnliche Weise zu setzen. Seit Version 66 wurde dies entfernt (siehe Firefox-Fehler 1513890).
Lokalisierung
Die erlaubten Eingaben für bestimmte <input> Typen hängen von der Sprache ab. In einigen Sprachen sind 1.000,00 eine gültige Zahl, während in anderen Sprachen die gültige Art, diese Zahl einzugeben, 1.000,00 ist.
Firefox verwendet die folgenden Heuristiken, um die Sprache zu bestimmen, um die Eingaben des Benutzers zu validieren (zumindest für type="number"):
- Versuch die Sprache, die durch ein
lang/xml:langAttribut auf dem Element oder irgendeinem seiner Eltern angegeben wird. - Versuch die Sprache, die durch einen
Content-LanguageHTTP Header spezifiziert wird. Oder, - Verwenden Sie die Sprache des Browsers, wenn keine angegeben ist.
Barrierefreiheit
>Labels
Bei der Einbindung von Eingaben ist es eine Barrierefreiheitserfordernis, Labels hinzuzufügen. Dies ist erforderlich, damit diejenigen, die unterstützende Technologien verwenden, wissen, wofür die Eingabe ist. Außerdem wird durch Klicken oder Berühren eines Labels das zugehörige Formularelement fokussiert. Dies verbessert die Barrierefreiheit und Benutzerfreundlichkeit für sehende Benutzer, erhöht die Fläche, auf die der Benutzer klicken oder berühren kann, um das Formularelement zu aktivieren. Dies ist besonders nützlich (und sogar erforderlich) für Radiobuttons und Kontrollkästchen, die klein sind. Für weitere Informationen zu Labels im Allgemeinen, siehe Labels.
Im Folgenden finden Sie ein Beispiel dafür, wie das <label> mit einem <input> Element in obigem Stil verbunden wird. Sie müssen dem <input> ein id Attribut geben. Das <label> benötigt dann ein for Attribut, dessen Wert mit dem id des Eingabes identisch ist.
<label for="peas">Do you like peas?</label>
<input type="checkbox" name="peas" id="peas" />
Größe
Interaktive Elemente wie Formulareingaben sollten einen Bereich bieten, der groß genug ist, dass sie leicht zu aktivieren sind. Dies hilft einer Vielzahl von Menschen, einschließlich Menschen mit motorischen Kontrollschwierigkeiten und Menschen, die ungenaue Eingabemethoden wie einen Stift oder Finger verwenden. Eine minimale interaktive Größe von 44×44 CSS-Pixeln wird empfohlen.
Technische Zusammenfassung
| Inhaltskategorien |
Fließinhalt, aufgelistet, übermittelbar, zurücksetzbares, formularassoziiertes Element,
Phrasing-Inhalt. Wenn der type nicht
hidden ist, dann auszeichnungsfähiges Element, greifbarer Inhalt.
|
|---|---|
| Erlaubter Inhalt | Keiner; es ist ein void-Element. |
| Tag-Auslassung | Muss ein Start-Tag haben und darf nicht einen End-Tag haben. |
| Erlaubte Eltern | Jedes Element, das Phrasing-Inhalt akzeptiert. |
| Implizierte ARIA-Rolle |
|
| Zulässige ARIA-Rollen |
|
| DOM-Interface | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
Spezifikationen
| Specification |
|---|
| HTML> # the-input-element> |