<input>: Das HTML-Input-Element
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
* Some parts of this feature may have varying levels of support.
Das <input>-Element (HTML) wird verwendet, um interaktive Steuerungen für webbasierte Formulare zu erstellen, um Daten vom Benutzer zu akzeptieren. Je nach Gerät und User Agent stehen eine Vielzahl von Eingabedatentypen und Steuerungs-Widgets zur Verfügung. Das <input>-Element gehört zu den leistungsstärksten und komplexesten in HTML, da es eine Vielzahl an Kombinationen von Eingabetypen und Attributen gibt.
Probieren Sie es aus
<label for="name">Name (4 to 8 characters):</label>
<input
type="text"
id="name"
name="name"
required
minlength="4"
maxlength="8"
size="10" />
label {
display: block;
font:
1rem "Fira Sans",
sans-serif;
}
input,
label {
margin: 0.4rem 0;
}
<input> Typen
Wie ein <input> funktioniert, hängt stark vom Wert des type-Attributs ab. Daher werden die verschiedenen Typen auf separaten Referenzseiten behandelt. Wenn dieses Attribut nicht angegeben wird, ist der Standardtyp text.
Die verfügbaren Typen sind wie folgt:
| Typ | Beschreibung | Grundlegende Beispiele |
|---|---|---|
| button |
Eine Drucktaste ohne Standardverhalten, die den Wert des value-Attributs anzeigt, standardmäßig leer.
|
|
| checkbox | Ein Kontrollkästchen, das einzelne Werte auswählen/deselektieren lässt. |
|
| color | Ein Steuerelement zur Farbauswahl; öffnet einen Farbwähler in unterstützenden Browsern. |
|
| date | Ein Steuerelement zur Eingabe eines Datums (Jahr, Monat, Tag, ohne Zeit). Öffnet einen Datumswähler oder numerische Räder für Jahr, Monat, Tag in unterstützenden Browsern. |
|
| datetime-local | Ein Steuerelement zur Eingabe von Datum und Zeit, ohne Zeitzone. Öffnet einen Datumswähler oder numerische Räder für Datums- und Zeitkomponenten in unterstützenden Browsern. |
|
Ein Feld zur Bearbeitung einer E-Mail-Adresse. Sieht aus wie ein
text-Input, hat jedoch Validierungsparameter und relevante Tastatur in unterstützenden Browsern und Geräten mit dynamischen Tastaturen.
|
|
|
| file |
Ein Steuerelement, das den Benutzer eine Datei auswählen lässt.
Verwenden Sie das accept-Attribut, um die Arten von Dateien zu definieren, die das Steuerelement auswählen kann.
|
|
| hidden | Ein Steuerelement, das nicht angezeigt wird, dessen Wert jedoch an den Server gesendet wird. Es gibt ein Beispiel in der nächsten Spalte, aber es ist versteckt! | |
| image |
Eine grafische submit-Schaltfläche. Zeigt ein durch das src-Attribut definiertes Bild an.
Das alt-Attribut wird angezeigt, wenn das Bild-src fehlt.
|
|
| month | Ein Steuerelement zur Eingabe eines Monats und Jahres, ohne Zeitzone. |
|
| number | Ein Steuerelement zur Eingabe einer Zahl. Zeigt einen Spinner an und fügt standardmäßige Validierung hinzu. Zeigt bei einigen Geräten mit dynamischen Tastaturen eine numerische Tastatur an. |
|
| password | Ein einzeiliges Textfeld, dessen Wert verborgen ist. Warnt den Benutzer, wenn die Seite nicht sicher ist. |
|
| radio |
Ein Optionsfeld, das es ermöglicht, aus mehreren Auswahlmöglichkeiten mit demselben name-Wert einen Einzelwert auszuwählen.
|
|
| range |
Ein Steuerelement zur Eingabe einer Zahl, deren genauer 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 der akzeptablen Werte zu definieren.
|
|
| reset | Ein Button, der den Inhalt des Formulars auf Standardwerte zurücksetzt. Nicht empfohlen. |
|
| search | Ein einzeiliges Textfeld zur Eingabe von Suchbegriffen. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. Kann in unterstützenden Browsern ein Löschsymbol enthalten, das zum Leeren des Feldes verwendet werden kann. Zeigt bei einigen Geräten mit dynamischen Tastaturen ein Suchsymbol anstelle der Eingabetaste an. |
|
| submit | Ein Button, der das Formular absendet. |
|
| tel | Ein Steuerelement zur Eingabe einer Telefonnummer. Zeigt bei einigen Geräten mit dynamischen Tastaturen eine Telefontastatur an. |
|
| text | Der Standardwert. Ein einzeiliges Textfeld. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. |
|
| time | Ein Steuerelement zur Eingabe eines Zeitwerts ohne Zeitzone. |
|
| url |
Ein Feld zur Eingabe einer URL. Sieht aus wie ein text-Input, hat aber Validierungsparameter und relevante Tastatur in unterstützenden Browsern und Geräten mit dynamischen Tastaturen.
|
|
| week | Ein Steuerelement zur Eingabe eines Datums, das aus einer Wochenjahreszahl und einer Wochennummer ohne Zeitzone besteht. |
|
| Veraltete Werte | ||
datetime
Veraltet
|
Ein Steuerelement zur Eingabe eines Datums und einer Uhrzeit (Stunde, Minute, Sekunde und Bruchteil einer Sekunde) basierend auf der UTC-Zeitzone. |
|
Attribute
Das <input>-Element ist aufgrund seiner Attribute so leistungsfähig; das type-Attribut, das oben mit Beispielen beschrieben wird, ist das wichtigste. Da jedes <input>-Element, unabhängig vom Typ, auf der Schnittstelle HTMLInputElement basiert, teilen sie technisch gesehen denselben Satz von Attributen. In der Praxis haben die meisten Attribute jedoch nur Auswirkungen auf einen bestimmten Eingabemetyp. Darüber hinaus variieren die Auswirkungen einiger Attribute abhängig vom Eingabetyp und beeinflussen verschiedene Eingabetypen auf unterschiedliche Weise.
Dieser Abschnitt bietet eine Tabelle, die alle Attribute mit einer kurzen Beschreibung auflistet. Im Anschluss an diese Tabelle folgen detaillierte Beschreibungen der einzelnen Attribute sowie der Eingabetypen, mit denen sie verbunden sind. Attribute, die für die meisten oder alle Eingabetypen üblich sind, werden weiter unten ausführlicher definiert. Attribute, die einzigartig für bestimmte Eingabetypen sind — oder Attribute, die für alle Eingabetypen üblich sind, aber spezielle Verhaltensweisen haben, wenn sie für einen bestimmten Eingabetyp verwendet werden — werden stattdessen auf den Seiten dieser Typen dokumentiert.
Attribute des <input>-Elements umfassen die globalen HTML-Attribute und zusätzlich:
| Attribut | Typ(en) | Beschreibung |
|---|---|---|
accept |
file |
Hinweis für erwarteten Dateityp in Dateiupload-Steuerelementen |
alpha |
color |
Deckkraft der Farbe |
alt |
image |
alt-Attribut für den Bildtyp. Erforderlich für Zugänglichkeit |
autocapitalize |
alle außer url, email und password |
Steuert automatische Großschreibung im eingegebenen Text. |
autocomplete |
alle außer checkbox, radio und Schaltflächen |
Hinweis für die Formular-Autovervollständigungsfunktion |
capture |
file |
Medienerfassungseingabemethode in Dateiupload-Steuerelementen |
checked |
checkbox, radio |
Ob der Befehl oder die Steuerung markiert ist |
colorspace |
color |
Der Farbraum, der für die Auswahl des Farbwerts verwendet werden soll |
dirname |
hidden, text, search, url, tel, email |
Name des Formularfelds für das Senden der Richtung des Elements bei der Formularübermittlung |
disabled |
alle | Ob das Formularsteuerelement deaktiviert ist |
form |
alle | Verknüpft die Steuerung mit einem Formularelement |
formaction |
image, submit |
URL für die Formularübermittlung |
formenctype |
image, submit |
Kodierungstyp des Formulardatensatzes für die Formularübermittlung |
formmethod |
image, submit |
HTTP-Methode für die Formularübermittlung |
formnovalidate |
image, submit |
Umgehung der Formularvalidierung bei der Formularübermittlung |
formtarget |
image, submit |
Browsing-Kontext für die Formularübermittlung |
height |
image |
Entspricht dem height-Attribut für <img>; vertikale Dimension |
list |
alle außer hidden, password, checkbox, radio und Schaltflächen |
Wert des id-Attributs der <datalist> der Autovervollständigungsoptionen |
max |
date, month, week, time, datetime-local, number, range |
Maximalwert |
maxlength |
text, search, url, tel, email, password |
Maximale Länge (Anzahl der Zeichen) von value |
min |
date, month, week, time, datetime-local, number, range |
Minimalwert |
minlength |
text, search, url, tel, email, password |
Minimale Länge (Anzahl der Zeichen) von value |
multiple |
email, file |
Boolean. Ob Mehrfachwerte erlaubt sind |
name |
alle | Name des Formularsteuerelements. Wird zusammen mit dem Formular als Teil eines Namens-/Wertepaars übermittelt |
pattern |
text, search, url, tel, email, password |
Muster, dem der value entsprechen muss, um gültig zu sein |
placeholder |
text, search, url, tel, email, password, number |
Text, der im Formularsteuerelement erscheint, wenn kein Wert gesetzt ist |
popovertarget |
button |
Bezeichnet 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 Schaltflächen |
Boolean. Der Wert ist nicht bearbeitbar |
required |
alle außer hidden, range, color und Schaltflächen |
Boolean. Ein Wert ist erforderlich oder muss markiert sein, damit das Formular übermittelt werden kann |
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 |
switch |
checkbox |
Ob das Kontrollkästchen-Input als Schalter gerendert werden soll |
type |
alle | Art des Formularsteuerelements |
value |
alle außer image |
Der Wert der Steuerung. Wenn im HTML angegeben, entspricht dies dem Anfangswert |
width |
image |
Entspricht dem width-Attribut für <img> |
Einige zusätzliche nicht standardisierte Attribute sind nach den Beschreibungen der Standardattribute aufgelistet.
Einzelne Attribute
accept-
Gültig nur für den
file-Eingabetyp, definiert dasaccept-Attribut, welche Dateitypen in einemfile-Upload-Steuerelement ausgewählt werden können. Siehe den file Eingabetyp. alphaExperimentell-
Gültig nur für den
color-Eingabetyp, bietet dasalpha-Attribut dem Endbenutzer die Möglichkeit, die Deckkraft der ausgewählten Farbe festzulegen. alt-
Gültig nur für den
image-Button, bietet dasalt-Attribut alternativen Text für das Bild, der den Wert des Attributs anzeigt, falls 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 in welcher Weise. Siehe die globale Attributseite
autocapitalizefür weitere Informationen. autocomplete-
(Kein Boolean-Attribut!) Das Attribut
autocompletenimmt als Wert eine durch Leerzeichen getrennte Zeichenkette an, die beschreibt, welche Art von Autovervollständigungsfunktionalität das Eingabefeld bieten soll, falls vorhanden. Eine typische Implementierung von Autovervollständigung erinnert sich an vorher eingegebene Werte im selben Eingabefeld, aber komplexere Formen von Autovervollständigung können existieren. Beispielsweise könnte ein Browser mit der Kontaktliste eines Geräts integrieren, umemail-Adressen in einem E-Mail-Eingabefeld zu vervollständigen. Sieheautocompletefür erlaubte Werte.Das Attribut
autocompleteist gültig fürhidden,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, und ist gültig für alle Eingabetypen außercheckbox,radio,fileoder jegliche der Schaltflächen-Typen.Siehe das
autocompleteattribute für zusätzliche Informationen, einschließlich Informationen zur Passwortsicherheit und wieautocompletebeihiddengeringfügig anders ist als bei anderen Eingabetypen. autofocus-
Ein Boolean-Attribut, das, falls vorhanden, anzeigt, dass die Eingabe automatisch den Fokus erhalten soll, sobald die Seite das Laden abgeschlossen hat (oder wenn das
<dialog>-Element angezeigt wurde, das das Element enthält).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 einem Element gesetzt ist, erhält das erste Element mit dem Attribut den Fokus.Das
autofocus-Attribut kann nicht auf Inputs des Typshiddenverwendet werden, da versteckte Eingaben nicht fokussierbar sind.Warnung: Das automatische Fokussieren eines Formularsteuerelements kann sehbehinderte Menschen, die Bildschirmlesetechnologie verwenden, und Menschen mit kognitiven Beeinträchtigungen verwirren. Wenn
autofocuszugewiesen wird, "teleportieren" Bildschirmleser ihre Benutzer zum Formularsteuerelement, ohne sie vorher zu warnen.Berücksichtigen Sie die Barrierefreiheit sorgfältig, wenn Sie das
autofocus-Attribut anwenden. Das automatische Fokussieren auf eine Steuerung kann dazu führen, dass die Seite beim Laden scrollt. Der Fokus kann auch dazu führen, dass auf einigen Touch-Geräten dynamische Tastaturen angezeigt werden. Während ein Bildschirmleser das Label des Formularsteuerelements ankündigen wird, das den Fokus erhält, wird der Bildschirmleser nichts vor dem Label ankündigen, und der sehende Benutzer auf einem kleinen Gerät wird gleichermaßen den Kontext verpassen, der durch den vorausgehenden Inhalt geschaffen wird. capture-
Eingeführt in der HTML-Medienerfassungsspezifikation 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 Hochladung mit derfile-Upload-Steuerung in unterstützenden Szenarien zu erfassen. Siehe den file Eingabetyp. checked-
Gültig für beide
radio- undcheckbox-Typen, istcheckedein Boolean-Attribut. Wenn es bei einemradio-Typ vorhanden ist, zeigt es an, dass das Optionsfeld das derzeit ausgewählte in der Gruppe gleichnamiger Optionsfelder ist. Wenn es bei einemcheckbox-Typ vorhanden ist, zeigt es an, dass das Kontrollkästchen standardmäßig markiert (wenn die Seite geladen wird) ist. Es zeigt nicht an, ob dieses Kontrollkästchen derzeit markiert ist: Wenn sich der Zustand des Kontrollkästchens ändert, spiegelt dieses Inhaltsattribut die Änderung nicht wider. (Nur dasHTMLInputElement'scheckedIDL-Attribut wird aktualisiert.)Hinweis: Im Gegensatz zu anderen Eingabekontrollen werden die Werte eines Kontrollkästchens und Optionsfelds nur in den übermittelten Daten enthalten, wenn sie derzeit
checkedsind. Wenn sie es sind, werden der Name und die Werte der markierten Steuerelemente übermittelt.Wenn zum Beispiel ein Kontrollkästchen mit einem
namedes Wertsfruitund einemvaluedes Wertscherrymarkiert ist, wirdfruit=cherryals Formulardaten übermittelt. Wenn das Kontrollkästchen nicht aktiv ist, wird es überhaupt nicht in den Formulardaten aufgelistet. Der Standardwertvaluefür Kontrollkästchen und Optionsfelder iston. colorspaceExperimentell-
Gültig nur für den
color-Eingabetyp, dascolorspace-Attribut gibt den Farbraum an, der vomtype="color"-Input verwendet wird. Mögliche aufgezählte Werte sind:"limited-srgb": Die Farbe befindet sich im sRGB-Farbraum. Dies umfasstrgb(),hsl(),hwb(), und<hex-color>Werte. Der Farbwert ist auf 8-Bit pror-,g- undb-Komponente begrenzt. 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,telundemailEingabetypen, ermöglicht das Attributdirnamedie Übermittlung der Richtung des Elements. Wenn es enthalten ist, wird das Formularsteuerelement mit zwei Namens-/Wertepaaren übermittelt: das erste ist dernameundvalueund das zweite ist der Wert desdirname-Attributs als Name, mit einem Wert vonltroderrtl, wie durch den 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, verursachen die Eingabeelemente sowohl das Namens-/Wertepaar von
fruit=cherryals auch dasdirname-/Richtungs-Paar vonfruit-dir=ltr. Weitere Informationen finden Sie imdirname-Attribut. disabled-
Ein Boolean-Attribut, das, falls vorhanden, anzeigt, dass der Benutzer nicht mit der Eingabe interagieren kann. Deaktivierte Eingaben werden typischerweise mit einer gedimmten Farbe oder einer anderen Form der Indikation gerendert, die anzeigt, dass das Feld nicht zur Verwendung verfügbar ist.
Insbesondere erhalten deaktivierte Eingaben nicht das
clickEreignis und deaktivierte Eingaben werden nicht mit dem Formular übermittelt.Hinweis: Obwohl nicht durch die Spezifikation gefordert, wird Firefox standardmäßig den dynamischen deaktivierten Zustand eines
<input>über Seitenladevorgänge hinweg beibehalten. Verwenden Sie dasautocomplete-Attribut, um diese Funktion zu steuern. form-
Eine Zeichenkette, die das
<form>-Element angibt, mit dem die Eingabe verknüpft ist (also, der Formulareigentümer). Der Wert dieser Zeichenkette, falls vorhanden, muss mit demideines<form>-Elements im selben Dokument übereinstimmen. Wenn dieses Attribut nicht angegeben ist, wird das<input>-Element mit dem nächsten enthaltenen Formular verknüpft, wenn vorhanden.Das Attribut
formlässt Sie eine Eingabe irgendwo im Dokument platzieren, sodass sie jedoch in einem Formular an anderer Stelle im Dokument einbezogen wird.Hinweis: Eine Eingabe kann nur mit einem Formular verknüpft werden.
formaction-
Gültig nur für die
image- undsubmit-Eingabetypen. Siehe den submit Eingabetyp für weitere Informationen. formenctype-
Gültig nur für die
image- undsubmit-Eingabetypen. Siehe den submit Eingabetyp für weitere Informationen. formmethod-
Gültig nur für die
image- undsubmit-Eingabetypen. Siehe den submit Eingabetyp für weitere Informationen. formnovalidate-
Gültig nur für die
image- undsubmit-Eingabetypen. Siehe den submit Eingabetyp für weitere Informationen. formtarget-
Gültig nur für die
image- undsubmit-Eingabetypen. Siehe den submit Eingabetyp für weitere Informationen. height-
Gültig nur für den
image-Eingabetyp, gibtheightdie Höhe der Bilddatei an, um die grafische Schaltfläche zu repräsentieren. Siehe den image Eingabetyp. id-
Globales Attribut, das für alle Elemente gilt, einschließlich aller Eingabetypen, das eine eindeutige Kennung (ID) definiert, die im gesamten Dokument einzigartig sein muss. Sein Zweck besteht darin, das Element beim Verlinken zu identifizieren. Der Wert wird als Wert des
for-Attributs von<label>verwendet, um das Label mit dem Formularsteuerelement zu verknüpfen. Siehe<label>. inputmode-
Globaler Wert, gültig für alle Elemente, bietet einen Hinweis an Browser darüber, welche Art von Konfiguration der virtuellen Tastatur verwendet werden soll, wenn dieses Element oder seine Inhalte bearbeitet werden. Werte umfassen
none,text,tel,url,email,numeric,decimalundsearch. list-
Der Wert, der dem
list-Attribut zugewiesen wird, sollte dieideines<datalist>-Elements im selben Dokument sein. Das<datalist>bietet eine Liste mit vordefinierten Werten, die dem Benutzer für diese Eingabe vorgeschlagen werden. Alle Wert in der Liste, die nicht mit demtypekompatibel sind, werden 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 eingeben.Es ist gültig für
text,search,url,tel,email,date,month,week,time,datetime-local,number,rangeundcolor.Laut den Spezifikationen wird das
list-Attribut nicht von denhidden,password,checkbox,radio,fileoder einer der Schaltflächen-Typen unterstützt.Abhängig vom Browser kann der Benutzer eine benutzerdefinierte Farbpalette vorgeschlagen, Strichmarkierungen entlang eines Bereichs oder sogar eine Eingabe, die wie ein
<select>-Element geöffnet wird, aber nicht gelistete Werte zulässt, sehen. Schauen 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,numberundrangedefiniert es den größten Wert im Bereich der erlaubten Werte. Überschreitet der eingegebenevaluediesen Wert, schlägt das Element Einschränkungsvalidierung fehl. Wenn der Wert desmax-Attributs keine Zahl ist, hat das Element keinen Höchstwert.Es gibt einen besonderen Fall: Wenn der Datentyp periodisch ist (z.B. bei Daten oder Zeiten), kann der Wert von
maxniedriger sein als der Wert vonmin, was darauf hinweist, dass der Bereich sich umschließt. Zum Beispiel erlaubt dies, einen Zeitbereich von 22:00 Uhr bis 04:00 Uhr anzugeben. maxlength-
Gültig für
text,search,url,tel,emailundpassword, definiert es die maximale Zeichenlänge (gemessen in UTF-16 Codeeinheiten), die der Benutzer in das Feld eingeben kann. Dies muss ein ganzzahliger Wert von 0 oder höher sein. Wenn keinmaxlengthangegeben oder ein ungültiger Wert angegeben ist, hat das Feld keine maximale Länge. Dieser Wert muss auch größer als oder gleich dem Wert vonminlengthsein.Die Eingabe schlägt Einschränkungsvalidierung fehl, wenn die Länge des in das Feld eingegebenen Textes größer ist als
maxlengthUTF-16 Codeeinheiten lang. 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,numberundrangedefiniert es den kleinsten Wert im Bereich der erlaubten Werte. Überschreitet der eingegebenevaluediesen Wert, schlägt das Element Einschränkungsvalidierung fehl. Wenn der Wert desmin-Attributs keine Zahl ist, hat das Element keinen Mindestwert.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 ist als das Minimum, das durch dasmin-Attribut erlaubt ist, wird die Einschränkungsvalidierung die Übermittlung des Formulars verhindern. Siehe Client-seitige Validierung für weitere Informationen.Es gibt einen besonderen Fall: 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 umschließt. Zum Beispiel erlaubt dies, einen Zeitbereich von 22:00 Uhr bis 04:00 Uhr anzugeben. minlength-
Gültig für
text,search,url,tel,emailundpassword, definiert es die minimale Zeichenlänge (gemessen in UTF-16 Codeeinheiten), die der Benutzer in das Eingabefeld eingeben kann. Dies muss ein nicht-negativer Ganzzahlwert kleiner als oder gleich dem durchmaxlengthangegebenen Wert sein. Wenn keinminlengthangegeben oder ein ungültiger Wert angegeben ist, hat die Eingabe keine Mindestlänge.Die Eingabe schlägt Einschränkungsvalidierung fehl, wenn die Länge des in das Feld eingegebenen Textes kürzer als
minlengthUTF-16 Codeeinheiten lang ist, was die Übermittlung des Formulars 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, falls gesetzt, bedeutet, dass der Benutzer in das E-Mail-Widget kommagetrennte E-Mail-Adressen eingeben oder imfile-Input mehr als eine Datei auswählen kann. Siehe den email und den file Eingabetyp. name-
Eine Zeichenkette, die einen Namen für das Eingabesteuerelement angibt. Dieser Name wird zusammen mit dem Wert der Steuerung übermittelt, wenn die Formulardaten übermittelt werden.
Betrachten Sie den
nameals erforderliches Attribut (auch wenn es das nicht ist). Wenn eine Eingabe keinen angegebenennamehat odernameleer ist, wird der Wert der Eingabe nicht mit dem Formular übermittelt! (Deaktivierte Steuerungen, nicht markierte Optionsfelder, nicht markierte Kontrollkästchen und Reset-Schaltflächen werden ebenfalls nicht gesendet.)Es gibt zwei besondere Fälle:
_charset_: Wenn es als Name eines<input>-Elements vom Typ hidden verwendet wird, wird dervalueder Eingabeagentur automatisch auf die Zeichenkodierung gesetzt, die verwendet wird, um das Formular zu übermitteln.isindex: Aus historischen Gründen ist der Nameisindexnicht erlaubt.
Das
name-Attribut erzeugt ein einzigartiges Verhalten für Optionsfelder.In einer Gruppe von gleichnamigen Optionsfeldern kann nur ein Optionsfeld gleichzeitig markiert sein. Wenn ein Optionsfeld in dieser Gruppe ausgewählt wird, wird automatisch ein derzeit ausgewähltes Optionsfeld in derselben Gruppe deselektiert. Der Wert dieses einen ausgewählten Optionsfelds wird zusammen mit dem Namen übermittelt, wenn das Formular übermittelt wird,
Wenn Sie in eine Serie von gleichnamigen Optionsfeldern tabben, erhält, falls ein Optionfeld markiert ist, dieses den Fokus. Wenn sie in der Quellordnung nicht gruppiert sind und eines der Gruppe markiert ist, beginnt das Tabben in die Gruppe, wenn das erste in der Gruppe angetroffen wird, wodurch alle übersprungen werden, die nicht markiert sind. Mit anderen Worten, wenn eine markiert ist, wird das Tabben die nicht markierten Optionsfelder in der Gruppe überspringen. Wenn keine markiert sind, erhält die Optionsfeldgruppe den Fokus, wenn das erste Optionsfeld in der gleichnamigen Gruppe erreicht wird.
Sobald eines der Optionsfelder in einer Gruppe den Fokus hat, ermöglicht die Navigation mit den Pfeiltasten durch alle Optionsfelder desselben Namens, selbst wenn die Optionsfelder in der Quellordnung nicht gruppiert sind.
Wenn ein Eingabeelement einen
nameerhält, wird dieser Name zu einer Eigenschaft derHTMLFormElement.elementsEigenschaft des Besitzforms. 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, Formularelemente einen
namezu geben, der einer eingebauten Eigenschaft des Formulars entspricht, da Sie dann die vordefinierte Eigenschaft oder Methode mit diesem Verweis auf das entsprechende Eingabefeld überschreiben würden. pattern-
Gültig für
text,search,url,tel,emailundpasswordwird daspattern-Attribut verwendet, um einen regulären Ausdruck zu kompilieren, dem dervaluedes Inputs entsprechen muss, damit der Wert die Einschränkungsvalidierung besteht. Es muss ein gültiger JavaScript-Regulärer-Ausdruck sein, wie er durch denRegExp-Typ verwendet wird und wie in unserem Leitfaden zu regulären Ausdrücken dokumentiert ist. Vorwärtsschrägstriche sollten nicht um den Mustertext angegeben werden. Beim Kompilieren des regulären Ausdrucks:- wird das Muster implizit mit
^(?:und)$umschlossen, sodass das Ergebnis gegen den gesamten Eingabewert übereinstimmen muss, d.h.^(?:<pattern>)$. - ist das
'v'-Flag gesetzt, sodass das Muster als Folge von Unicode-Codepunkten behandelt wird, anstatt als ASCII.
Wenn das
pattern-Attribut vorhanden, aber nicht angegeben oder ungültig ist, wird kein regulärer Ausdruck angewendet und dieses Attribut vollständig ignoriert. Wenn das Musterattribut gültig ist und ein nicht leerer Wert nicht mit dem Muster übereinstimmt, wird die Einschränkungsvalidierung die Übermittlung des Formulars verhindern. Istmultiplevorhanden, wird der kompilierte reguläre Ausdruck gegen jeden kommagetrennten Wert verglichen.Hinweis: Falls Sie das
pattern-Attribut verwenden, klären Sie den Benutzer über das erwartete Format auf, indem Sie erläuternden Text in der Nähe platzieren. Sie können auch eintitle-Attribut einfügen, um zu erklären, was die Anforderungen sind, um dem Muster zu entsprechen; die meisten Browser zeigen diesen Titel als Tooltip an. Die sichtbare Erklärung ist für die Barrierefreiheit erforderlich. Der Tooltip ist eine Verbesserung.Siehe Client-seitige Validierung für weitere Informationen.
- wird das Muster implizit mit
placeholder-
Gültig für
text,search,url,tel,email,passwordundnumber, bietet dasplaceholder-Attribut einen kurzen Hinweis auf den Benutzer, welche Art von Informationen im Feld erwartet wird. Dies sollte ein Wort oder kurzer Satz sein, der einen Hinweis auf die erwartete Art der Daten gibt, anstatt eine Erklärung oder Aufforderung. Der Text darf nicht Wagenrückläufe oder Zeilenumbrüche enthalten. Wenn beispielsweise erwartet wird, dass ein Feld den Vornamen des Benutzers erfasst, und sein Label "Vorname" lautet, könnte ein geeignetes Platzhalter sein "z.B., Mustafa".Hinweis: Das
placeholder-Attribut ist nicht so semantisch nützlich wie andere Möglichkeiten zur Erklärung Ihres Formulars und kann unerwartete technische Probleme mit Ihrem Inhalt verursachen. Siehe Labels für weitere Informationen. popovertarget-
Wandelt ein
<input type="button">-Element in einen Popover-Steuerungs-Button um; nimmt die ID des zu steuernden Popover-Elements als Wert an. Siehe die Popover API-Startseite für weitere Details. Die Einrichtung einer Beziehung zwischen einem Popover und seinem Auslöser-Button mit dempopovertarget-Attribut hat zwei zusätzliche nützliche Effekte:- Der Browser erstellt eine implizite
aria-detailsundaria-expanded-Beziehung zwischen Popover und Auslöser und positioniert das Popover in einer logischen Position in der Tastaturnavigation, wenn es angezeigt wird. Dies macht das Popover für Tastatur- und Hilfstechnologie-Benutzer (AT) zugänglicher (siehe auch Popover-Zugänglichkeitsfunktionen). - Der Browser erstellt einen impliziten Ankerverweis zwischen den beiden, wodurch es sehr praktisch wird, Popover relativ zu ihren Steuerungen mit CSS-Ankerpositionierung zu positionieren. Siehe Popover-Ankerpositionierung für weitere Details.
- Der Browser erstellt eine implizite
popovertargetaction-
Gibt die Aktion an, die auf ein Popover-Element ausgeführt werden soll, das von einer Steuerung
<input type="button">gesteuert wird. Mögliche Werte sind:"hide"-
Der Button wird ein angezeigtes Popover verstecken. Wenn Sie versuchen, ein bereits verstecktes Popover zu verstecken, wird keine Aktion durchgeführt.
"show"-
Der Button wird ein verstecktes Popover zeigen. Wenn Sie versuchen, ein bereits angezeigtes Popover zu zeigen, wird keine Aktion durchgeführt.
"toggle"-
Der Button wird ein Popover zwischen anzuzeigendem und verstecktem Zustand 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 durch den Steuerungs-Button ausgeführt wird.
readonly-
Ein Boolean-Attribut, das, falls vorhanden, anzeigt, dass der Benutzer den Wert der Eingabe nicht bearbeiten kann. Das
readonly-Attribut ist unterstützt durch dietext,search,url,tel,email,date,month,week,time,datetime-local,numberundpasswordEingabetypen.Siehe das HTML-Attribut:
readonlyfür weitere Informationen. required-
requiredist ein Boolean-Attribut, das, falls vorhanden, anzeigt, dass der Benutzer einen Wert für die Eingabe angeben muss, bevor das besitzende Formular übermittelt werden kann. Dasrequired-Attribut ist unterstützt durchtext,search,url,tel,email,date,month,week,time,datetime-local,number,password,checkbox,radioundfileEingaben.Siehe Client-seitige Validierung und das HTML-Attribut:
requiredfür weitere Informationen. size-
Gültig für
email,password,tel,urlundtextspezifiziert dassize-Attribut, wie viel von der Eingabe angezeigt wird. Grundsätzlich erzeugt dies dasselbe Ergebnis wie das Einstellen der CSS-width-Eigenschaft mit einigen Besonderheiten. Die tatsächliche Einheit des Werts hängt vom Eingabetyp ab. Fürpasswordundtextist es eine Anzahl von Zeichen (oderem-Einheiten) mit einem Standardwert von20und für andere sind es Pixel (oderpx-Einheiten). CSSwidthhat Vorrang vor demsize-Attribut. src-
Gültig nur für den
imageEingabebutton, istsrceine Zeichenkette, die die URL der Bilddatei angibt, um die grafische Absende-Schaltfläche darzustellen. Siehe den image-Eingabetyp. step-
Gültig für
date,month,week,time,datetime-local,numberundrange, ist dasstepAttribut eine Zahl, die die Feinheit angibt, an die sich der Wert halten muss. Nur Werte, die eine ganze Anzahl von Schritten vom Schritt-Basispunkt entfernt sind, sind gültig. Der Schritt-Basispunkt istminfalls angegeben,valueandernfalls oder0, falls keiner vorhanden ist (außer beiweek, bei dem der Standard-Schritt-Basispunkt −259.200.000 beträgt, was den Anfang der Woche1970-W01darstellt).Wenn es nicht ausdrücklich einbezogen wird:
- Der
stepstandardmäßig ist1fürnumberundrange. - Jeder Datum-/Zeiteingabetyp hat einen eigenen Standard-
step-Wert, der für den Typ geeignet ist; siehe die einzelnen Eingabeseiten:date,datetime-local,month,timeundweek.
Der Wert muss eine positive Zahl sein — Ganzzahl oder Fließkomma — oder der spezielle Wert
any, was bedeutet, dass kein Schritt gemacht wird, und jeder Wert ist erlaubt (unter Berücksichtigung anderer Einschränkungen, wieminundmax).Wenn Sie zum Beispiel
<input type="number" min="10" step="2">haben, dann ist jede gerade Ganzzahl10oder größer gültig. Wenn weggelassen,<input type="number">, ist jede Ganzzahl gültig, aber Fließkommazahlen (wie4.2) sind nicht gültig, dastepstandardmäßig1ist. Für4.2, um gültig zu sein, hättestepaufanygesetzt werden müssen, 0.1, 0.2, oder dermin-Wert hätte eine Zahl sein müssen, die auf.2endet, wie<input type="number" min="-5.2">.Hinweis: Wenn die von Benutzer eingegebenen Daten nicht mit der Schritt-Konfiguration übereinstimmen, wird der Wert bei der Einschränkungsvalidierung als ungültig angesehen und entspricht der
:invalid-Pseudo-Klasse.Siehe Client-seitige Validierung für weitere Informationen.
- Der
switchExperimentell-
Gültig nur für
checkbox-Eingaben,switchist ein Boolean-Attribut, das angibt, ob die Kontrollkästchen-Eingabe als Schalter gerendert werden soll.Hinweis: Dieses Attribut ist noch experimentell und hat begrenzte Browser-Unterstützung. Das Attribut wird auf nicht unterstützten Browsern ignoriert.
tabindex-
Globales Attribut, gültig für alle Elemente, einschließlich aller Eingabetypen, ein ganzzahliger Wert, der angibt, ob das Element Eingabefokus annehmen kann (fokussierbar ist), ob es an der sequentiellen Tastaturnavigation teilnehmen sollte. Da alle Eingabetypen außer den Eingaben des Typs hidden fokussierbar sind, sollte dieses Attribut nicht auf Formularsteuerelementen verwendet werden, da dadurch die Fokusreihenfolge für alle Elemente im Dokument verwaltet werden müsste, mit dem Risiko, die Benutzerfreundlichkeit und Barrierefreiheit bei falscher Umsetzung zu beeinträchtigen.
title-
Globales Attribut, gültig für alle Elemente, einschließlich aller Eingabetypen, das einen Text enthält, der beratende Informationen zu dem Element bietet, zu dem es gehört. Solche Informationen können typischerweise, aber nicht unbedingt, als Tooltip dem Benutzer präsentiert werden. Der Titel sollte nicht als primäre Erklärung des Zwecks der Formularkontrolle verwendet werden. Stattdessen sollte das
<label>-Element mit einemfor-Attribut verwendet werden, das auf dasid-Attribut der Formularkontrolle gesetzt ist. Siehe Labels unten. type-
Eine Zeichenkette, die den Typ der Steuerung angibt, die gerendert werden soll. Zum Beispiel wird ein Wert von
checkboxverwendet, um eine Checkbox zu erstellen. Wenn weggelassen (oder ein unbekannter Wert angegeben wird), wird der Eingabetyptextverwendet, wodurch ein Textfeld erstellt wird.Zulässige Werte sind oben in Eingabetypen aufgelistet.
value-
Der Wert der Eingabesteuerung. Wenn im HTML angegeben, ist dies der Anfangswert, und von da an kann er jederzeit mithilfe von JavaScript geändert oder abgerufen werden, indem auf die
value-Eigenschaft des jeweiligenHTMLInputElement-Objekts zugegriffen wird. Dasvalue-Attribut ist immer optional, sollte jedoch als zwingend fürcheckbox,radioundhiddenbetrachtet werden. width-
Gültig nur für den
imageEingabebutton, istwidthdie Breite der Bilddatei, um die grafische Absende-Schaltfläche darzustellen. Siehe den image-Eingabetyp.
Nicht-standardisierte Attribute
Die folgenden nicht-standardisierten Attribute sind ebenfalls in einigen Browsern verfügbar. Als allgemeine Regel sollten Sie vermeiden, sie zu verwenden, es sei denn, es ist unvermeidlich.
| Attribut | Beschreibung |
|---|---|
incremental |
Ob oder nicht, um wiederholte [`search`](/de/docs/Web/API/HTMLInputElement/search_event)-Ereignisse zu senden, um das Aktualisieren von Live-Suchergebnissen zu ermöglichen, während der Benutzer noch den Wert des Feldes bearbeitet. Nur WebKit und Blink (Safari, Chrome, Opera usw.). |
mozactionhint
Veraltet
|
Eine Zeichenkette, die die Art von Aktion angibt, die ausgeführt wird, wenn der Benutzer die Enter oder Return-Taste drückt, während er das Feld bearbeitet; dies wird verwendet, um eine geeignete Beschriftung für diese Taste auf einem
virtuellen Tastatur zu bestimmen. Da dieses Attribut veraltet ist, verwenden Sie |
orient |
Legt die Ausrichtung des Bereichs-Schiebers fest. Nur Firefox.. |
results |
Die maximale Anzahl von Elementen, die in der Dropdown-Liste der vorherigen Suchanfragen angezeigt werden sollen. Nur Safari. |
webkitdirectory
|
Ein Boolean, der angibt, ob nur dem Benutzer erlaubt sein soll, ein Verzeichnis (oder Verzeichnisse, falls multiple ebenfalls vorhanden ist) auszuwählen
|
incrementalNicht standardisiert-
Das Boolean-Attribut
incrementalist eine WebKit- und Blink-Erweiterung (daher von Safari, Opera, Chrome usw. unterstützt), das, falls vorhanden, dem User Agent sagt, 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 darstellt. Dies ermöglicht Ihrem Code, die Suchergebnisse in Echtzeit zu aktualisieren, während der Benutzer die Suche bearbeitet.Falls
incrementalnicht angegeben ist, wird dassearch-Ereignis nur gesendet, wenn der Benutzer eine Suche explizit initiiert (wie durch das Drücken der Enter oder Return-Taste beim Bearbeiten des Feldes).Das
search-Ereignis ist so rate-begrenzet, dass es nicht häufiger als in einem implementierungsdefinierten Intervall gesendet wird. orientNicht standardisiert-
Ähnlich dem nicht standardisierten CSS-
-moz-orient-Eigenschaft, die die<progress>und<meter>Elemente beeinträchtigt, definiert dasorient-Attribut die Ausrichtung des Bereichs-Sliders. Werte umfassenhorizontal, was bedeutet, dass der Bereich horizontal gerendert wird, undvertical, bei dem der Bereich vertikal gerendert wird. Siehe Erstellung vertikaler Formularsteuerelemente für einen modernen Ansatz zur Erstellung vertikaler Formularsteuerelemente. resultsNicht standardisiert-
Das
results-Attribut — nur von Safari unterstützt — ist ein numerischer Wert, der es Ihnen ermöglicht, die maximale Anzahl von Einträgen in der vom<input>Element nativ bereitgestellten Dropdown-Liste vorheriger Suchanfragen zu überschreiben.Der Wert muss eine nicht-negative Dezimalzahl sein. Falls nicht bereitgestellt oder ein ungültiger Wert angegeben wird, verwendet der Browser die Standard-Maximalanzahl von Einträgen.
webkitdirectoryNicht standardisiert-
Das Boolean
webkitdirectory-Attribut, falls vorhanden, gibt an, dass nur Verzeichnisse vom Benutzer in der Dateiauswahl-Oberfläche ausgewählt werden sollen. 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 neuer verwendbar. Obwohl es relativ breit unterstützt wird, ist es immer noch nicht standardisiert und sollte nicht verwendet werden, es sei denn, es gibt keine Alternative.
Methoden
Die folgenden Methoden werden von der HTMLInputElement Schnittstelle bereitgestellt, die <input>-Elemente im DOM repräsentiert. Ebenfalls verfügbar sind Methoden, die von den Elternschnittstellen, HTMLElement, Element, Node und EventTarget spezifiziert werden.
checkValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfung besteht; andernfalls wirdfalsezurückgegeben und eininvalidEreignis am Element ausgelöst. reportValidity()-
Gibt
truezurück, wenn der Wert des Elements die Gültigkeitsprüfung besteht; andernfalls wirdfalsezurückgegeben, eininvalidEreignis wird am Element ausgelöst und (falls das Ereignis nicht abgebrochen wird) wird das Problem dem Benutzer gemeldet. select()-
Wählt den gesamten Inhalt des
<input>-Elements aus, wenn der Inhalt des Elements auswählbar ist. Bei Elementen ohne auswählbaren Textinhalt (wie ein visueller Farbwähler oder ein Kalenderdatumseingabefeld) tut diese Methode nichts. setCustomValidity()-
Setzt eine benutzerdefinierte Nachricht, die angezeigt wird, wenn der Wert des Eingangselements nicht gültig ist.
setRangeText()-
Setzt den Inhalt des spezifizierten Bereichs von Zeichen im Eingabefeld auf eine gegebene Zeichenfolge. Ein
selectMode-Parameter ist verfügbar, um zu steuern, wie der vorhandene Inhalt betroffen ist. setSelectionRange()-
Wählt den spezifizierten Bereich von Zeichen innerhalb eines Texteingabeelements aus. Funktioniert nicht für Eingaben, die nicht als Texteintragsfelder präsentiert werden.
showPicker()-
Zeigt den Browser-picker für das Eingabefeld an, der normalerweise angezeigt würde, wenn das Element ausgewählt wird, aber durch Drücken eines Knopfes 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, die ersetzbare Elemente sind, haben einige Eigenschaften, die nicht auf nicht-Formularelemente zutreffen. Es gibt CSS-Selektoren, die speziell auf Formularelemente basierend auf ihren UI-Funktionen abzielen können, auch bekannt als UI-Pseudoklassen. Das Eingabeelement kann auch nach Typ mit Attributselektoren angesprochen werden. Es gibt einige Eigenschaften, die ebenfalls besonders nützlich sind.
UI-Pseudoklassen
| Pseudoklasse | Beschreibung |
|---|---|
:enabled |
Jedes momentan aktivierte Element, das aktiviert (ausgewählt, angeklickt, beschriftet etc.) oder fokussiert werden kann und auch einen deaktivierten Status hat, in dem es nicht aktiviert oder fokussiert werden kann. |
:disabled |
Jedes momentan deaktivierte Element, das einen aktivierten Status hat, was bedeutet, dass es anderweitig aktiviert (ausgewählt, angeklickt, beschriftet etc.) oder fokussiert werden könnte, wenn es nicht deaktiviert wäre. |
:read-only |
Element nicht vom Benutzer bearbeitbar |
:read-write |
Element, das vom Benutzer bearbeitet werden kann. |
:placeholder-shown |
Element, das momentan Platzhalter-Text anzeigt, einschließlich <input> und <textarea>-Elemente mit dem placeholder Attribut, das bisher noch keinen Wert hat.
|
:default |
Formular-Elemente, die Standard in einer Gruppe verwandter Elemente sind. Entspricht den checkbox und radio Eingabetypen, die beim Laden oder Rendern der Seite aktiviert waren. |
:checked |
Entspricht den checkbox und radio Eingabetypen, die momentan aktiviert sind (und der <option> in einem <select>, das momentan ausgewählt ist).
|
:indeterminate |
checkbox Elemente, deren indeterminate Eigenschaft durch JavaScript auf true gesetzt wurde, radio Elemente, wenn alle Radioschaltflächen mit dem gleichen Namen im Formular nicht aktiviert sind, und <progress> Elemente in einem unbestimmten Zustand.
|
:valid |
Formularsteuerelemente, auf die eine Gültigkeitsprüfung angewendet werden kann und die momentan gültig sind. |
:invalid |
Formularsteuerelemente, auf die eine Gültigkeitsprüfung angewendet wurde und die derzeit nicht gültig sind. Entspricht einem Formularsteuerelement, dessen Wert nicht den durch seine Attribute festgelegten Einschränkungen entspricht, wie required, pattern, step und max.
|
:in-range |
Eine nicht leere Eingabe, deren aktueller Wert innerhalb der durch die min und max Attribute und den step festgelegten Bereichsbeschränkungen liegt.
|
:out-of-range |
Eine nicht leere Eingabe, deren aktueller Wert NICHT innerhalb der durch die min und max Attribute festgelegten Bereichslimits liegt oder nicht den step Beschränkungen entspricht.
|
:required |
<input>, <select>, oder <textarea> Element, das das required Attribut gesetzt hat.
Entspricht nur Elementen, die erforderlich sein können.
Das Attribut an einem nicht-erforderlichen Element aufzunehmen, führt nicht zu einer Übereinstimmung.
|
:optional |
<input>, <select>, oder <textarea> Element, das KEIN required Attribut gesetzt hat.
Entspricht nicht Elementen, die nicht erforderlich sein können.
|
:blank |
<input> und <textarea> Elemente, die derzeit keinen Wert haben.
|
:user-invalid |
Ähnlich wie :invalid, wird aber beim Verlassen aktiv. Entspricht ungültigen Eingaben, jedoch erst nach Benutzerinteraktion, wie 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 (etwa <input type="color">) — aber nur, wenn das Element im geöffneten Zustand ist, das heißt, wenn der Picker angezeigt wird.
|
Beispiel für Pseudoklassen
Wir können ein Kontrollkästchen-Etikett basierend darauf gestalten, ob das Kontrollkästchen aktiviert ist oder nicht. In diesem Beispiel gestalten wir die color und font-weight des <label>, das direkt nach einer aktivierten Eingabe kommt. Wir haben keine Stile angewandt, wenn die input nicht aktiviert ist.
input:checked + label {
color: red;
font-weight: bold;
}
Attributselektoren
Es ist möglich, verschiedene Arten von Formularelementen basierend auf ihrem type mit Attributselektoren anzusprechen. CSS-Attributselektoren vergleichen Elemente basierend entweder nur auf dem Vorhandensein 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 erscheint der Platzhalter-Text in durchsichtigem oder hellem Grau. Das ::placeholder Pseudo-Element ist der placeholder Text des Eingabefeldes. Es kann mit einem begrenzten Satz von CSS-Eigenschaften gestaltet werden.
::placeholder {
color: blue;
}
Nur der Teilbereich der CSS-Eigenschaften, die auf das ::first-line Pseudo-Element angewendet werden können, kann in einer Regel verwendet werden, die ::placeholder in ihrem Selektor hat.
caret-color
Eine Eigenschaft, die speziell für texteingabebezogene Elemente gilt, ist die CSS caret-color Eigenschaft, die es ermöglicht, die Farbe festzulegen, mit der die Texteingabefarbe gezeichnet 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
field-sizing
Die field-sizing Eigenschaft ermöglicht es Ihnen, das Größenverhalten von Formularen zu steuern (d.h. sie erhalten standardmäßig eine bevorzugte Größe.) Diese Eigenschaft ermöglicht es Ihnen, das Standardverhalten zu überschreiben und Formularsteuerelemente in ihrer Größe anzupassen, um ihren Inhalt aufzunehmen.
Diese Eigenschaft wird typischerweise verwendet, um Eingabefelder zu erstellen, die ihren Inhalt anpassen und wachsen, wenn mehr Text eingegeben wird. Dies funktioniert mit Eingabetypen, die direkte Texteingaben akzeptieren (zum Beispiel, text und url), Eingabetyp file und <textarea>-Elementen.
object-position und object-fit
In bestimmten Fällen (typischerweise in nicht-textuellen Eingaben und spezialisierten Schnittstellen) ist das <input> Element ein ersetztes Element. Wenn es so ist, können die Position und Größe des Elements und ihre Position innerhalb des Rahmens mithilfe der CSS object-position und object-fit Eigenschaften 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 erforderlich, um erläuternden Text mit einem <input> zu verknüpfen. Das <label>-Element liefert erklärende Informationen über ein Eingabefeld, das immer angemessen ist (von etwaigen Layout-Bedenken abgesehen). 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 Screenreader. Indem sie mit dem for-Attribut des <label>-Tags verbunden werden, binden Sie den Arm an das input, sodass Screenreader den Benutzern die Inputs genauer beschreiben können.
Es reicht nicht aus, einfachen Text neben dem <input>-Element zu haben. Vielmehr erfordert die Benutzbarkeit und Barrierefreiheit die Einbeziehung entweder impliziter oder expliziter <label>:
<!-- inaccessible -->
<p>Enter your name: <input id="name" type="text" size="30" /></p>
<!-- implicit label -->
<p>
<label>Enter your name: <input id="name" type="text" size="30" /></label>
</p>
<!-- explicit label -->
<p>
<label for="name">Enter your name: </label>
<input id="name" type="text" size="30" />
</p>
Das erste Beispiel ist nicht zugänglich: Es gibt keine Beziehung zwischen der Eingabeaufforderung und dem <input> Element.
Zusätzlich zu einem zugänglichen Namen bietet das Label einen größeren 'Hit'-Bereich für Maus- und Touchscreen-Benutzer, um zu klicken oder zu berühren. Durch die Paarung eines <label> mit einem <input> wird durch Klicken auf eines von beiden das <input> fokussiert. Wenn Sie einfachen Text verwenden, um Ihr Eingabefeld zu "beschriften", wird dies nicht passieren. Wenn die Eingabeaufforderung Teil des Aktivierungsbereichs für die Eingabe ist, ist dies hilfreich für Personen mit motorischen Steuerungsstörungen.
Für Webentwickler ist es wichtig, nie davon auszugehen, dass die Leute all das wissen, was wir wissen. Diese Vielfalt an Personen, die das Internet nutzen, und damit Ihre Website, garantiert praktisch, dass einige Besucher Ihrer Website aufgrund ihrer einzigartigen Interpretationen von Gedankenprozessen und/oder Umständen Ihre Formulare unterschiedlich von Ihnen wahrnehmen, wenn Sie keine klaren und korrekt präsentierten Labels bereitstellen.
Platzhalter sind nicht zugänglich
Das placeholder Attribut ermöglicht es Ihnen, Text anzugeben, der innerhalb des <input>-Inhaltsbereichs selbst angezeigt wird, wenn dieser leer ist. Der Platzhalter sollte niemals erforderlich sein, um Ihre Formulare zu verstehen. Es ist kein Label und sollte nicht als Ersatz dafür verwendet werden, weil es dies nicht erfüllt. Der Platzhalter dient dazu, einen Hinweis darauf zu geben, wie ein eingegebener Wert aussehen soll, nicht eine Erklärung oder Aufforderung.
Der Platzhalter ist nicht nur für Screenreader unzugänglich, sondern verschwindet auch, sobald der Benutzer Text in das Formularsteuerelement eingibt oder wenn das Formularsteuerelement bereits einen Wert hat. Browser mit automatisierten Seitenübersetzungsfunktionen können Attribute bei der Übersetzung ü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 kennzeichnen müssen, verwenden Sie das <label> Element.
Validierung auf Client-Seite
Warnung:
Die clientseitige 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 sie immer auch serverseitig und geben Sie eine 400 HTTP Antwort zurück, wenn das Format ungültig ist.
Zusätzlich zur Verwendung von CSS zum Stil der Eingaben basierend auf den :valid oder :invalid UI-Zuständen basierend auf dem aktuellen Zustand jeder Eingabe, wie im Abschnitt UI-Pseudoklassen oben beschrieben, bietet der Browser auch eine clientseitige Validierung beim (versuchten) Absenden des Formulars an. Beim Absenden des Formulars, wenn es ein Formularsteuerelement gibt, das die Einschränkungsprüfung nicht besteht, zeigen unterstützende Browser eine Fehlermeldung auf dem ersten ungültigen Formularsteuerelement an; entweder eine Standardmeldung basierend auf dem Fehlertyp anzeigend oder eine von Ihnen festgelegte Meldung.
Einige Eingabetypen und andere Attribute schränken ein, welche Werte für eine bestimmte Eingabe gültig sind. Zum Beispiel bedeutet <input type="number" min="2" max="10" step="2">, dass nur die Zahlen 2, 4, 6, 8 oder 10 gültig sind. Mehrere Fehler könnten auftreten, darunter ein rangeUnderflow-Fehler, wenn der Wert kleiner als 2 ist; rangeOverflow, wenn er größer als 10 ist; stepMismatch, wenn der Wert eine Zahl zwischen 2 und 10 ist, aber keine gerade ganze Zahl (nicht den Anforderungen des step Attributs entsprechend); oder typeMismatch, wenn der Wert keine Zahl ist.
Für die Eingabetypen, deren Bereich von möglichen Werten periodisch ist (d.h. am höchsten möglichen Wert Fähre, die Werte wieder an den Anfang zurückgehen, anstatt aufzuhören), ist es möglich, dass die Werte der max und min Eigenschaften umgekehrt sind, was darauf hinweist, dass der Bereich der zulässigen Werte an min beginnt, um den niedrigsten möglichen Wert wickelt, und dann weitergeht, bis max erreicht ist. Dies ist besonders nützlich für Daten und Zeiten, beispielsweise wenn Sie möchten, dass der Bereich von 20:00 Uhr bis 08:00 Uhr reicht:
<input type="time" min="20:00" max="08:00" name="overnight" />
Bestimmte Attribute und deren Werte können zu einem bestimmten Fehler des ValidityState führen:
| Attribut | Zugehörige Eigenschaft | Beschreibung |
|---|---|---|
max |
[`validityState.rangeOverflow`](/de/docs/Web/API/ValidityState/rangeOverflow) |
Tritt auf, wenn der Wert größer ist als der maximal erlaubte Wert gemäß dem max Attribut
|
maxlength |
[`validityState.tooLong`](/de/docs/Web/API/ValidityState/tooLong) |
Tritt auf, wenn die Anzahl der Zeichen größer ist als die durch die maxlength Eigenschaft erlaubte Zahl
|
min |
[`validityState.rangeUnderflow`](/de/docs/Web/API/ValidityState/rangeUnderflow) |
Tritt auf, wenn der Wert kleiner ist als der minimal erlaubte Wert gemäß dem min Attribut
|
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 Zahl
|
pattern |
[`validityState.patternMismatch`](/de/docs/Web/API/ValidityState/patternMismatch) |
Tritt auf, wenn ein Mustermodus mit einem gültigen regulären Ausdruck enthalten ist und das value diesen nicht erfüllt.
|
required |
[`validityState.valueMissing`](/de/docs/Web/API/ValidityState/valueMissing) |
Tritt auf, wenn das required Attribut vorhanden ist, der Wert jedoch null ist oder das Radio oder Kontrollkästchen nicht aktiviert ist.
|
step |
[`validityState.stepMismatch`](/de/docs/Web/API/ValidityState/stepMismatch) |
Der Wert erfüllt nicht das Schrittinkrement. Der Standard-Inkrement wert ist 1, daher sind nur ganze Zahlen bei type="number" gültig, wenn der 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, z. B. wenn eine E-Mail kein @ enthält oder eine URL kein Protokoll enthält.
|
Wenn eine Steuerelement kein required Attribut hat, kein Wert oder eine leere Zeichenkette, ist es nicht ungültig. Selbst wenn die oben genannten Attribute vorhanden sind, führt eine leere Zeichenkette nicht zu einem Fehler.
Wir können Grenzen festlegen, welche Werte wir akzeptieren, und unterstützende Browser werden diese Formularwerte nativ validieren und den Benutzer alarmieren, wenn beim Absenden des Formulars ein Fehler auftritt.
Neben den im obigen Tab beschriebenen Fehlern enthält die validityState Schnittstelle die booleanschen readonly Eigenschaften badInput, valid und customError. Das Gültigkeitsobjekt umfasst:
validityState.valueMissingvalidityState.typeMismatchvalidityState.patternMismatchvalidityState.tooLongvalidityState.tooShortvalidityState.rangeUnderflowvalidityState.rangeOverflowvalidityState.stepMismatchvalidityState.badInputvalidityState.validvalidityState.customError
Für diese booleschen Eigenschaften zeigt ein Wert von true, dass der gegebene Grund für das Scheitern der Validierung vorliegt, mit Ausnahme der valid-Eigenschaft, die true ist, wenn der Wert des Elements allen Einschränkungen genügt.
Wenn ein Fehler vorliegt, werden unterstützende Browser sowohl den Benutzer alarmieren als auch verhindern, dass das Formular abgesendet wird. Ein Wort der Warnung: Wenn ein benutzerdefinierter Fehler auf einen wahrheitsgemäßen Wert (alles außer der leeren Zeichenkette oder null) gesetzt wird, wird das Formular daran gehindert, abgesandt zu werden. Wenn keine benutzerdefinierte Fehlermeldung vorliegt und keine der anderen Eigenschaften true zurückgeben, wird valid true sein 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ültigkeitsnachricht auf die leere Zeichenfolge setzt, ist entscheidend. Wenn der Benutzer einen Fehler macht und die Gültigkeit gesetzt ist, wird das Absenden fehlschlagen, auch 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 für <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 HTML-Formularvalidierungsfunktionen lassen dies eine Standard-Fehlermeldung erzeugen, wenn Sie versuchen, das Formular ohne gültige Werte abzusenden oder mit einem Wert, der das pattern nicht erfüllt.
Wenn Sie stattdessen benutzerdefinierte Fehlermeldungen anzeigen möchten, können Sie JavaScript wie folgt verwenden:
const nameInput = document.querySelector("input");
nameInput.addEventListener("input", () => {
nameInput.setCustomValidity("");
nameInput.checkValidity();
});
nameInput.addEventListener("invalid", () => {
if (nameInput.value === "") {
nameInput.setCustomValidity("Enter your username!");
} else {
nameInput.setCustomValidity(
"Usernames can only contain upper and lowercase letters. Try again!",
);
}
});
Das Beispiel wird wie folgt gerendert:
Kurzgesagt:
- Wir überprüfen den gültigen Status 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 wird ausgeführt. Innerhalb dieser Funktion bestimmen 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 Gültigkeitsfehlermeldung festlegen. - Dadurch wird bei Betätigung des
submit-Buttons eine der benutzerdefinierten Fehlermeldungen angezeigt, wenn der Wert der Eingabe ungültig ist. - Wenn er gültig ist, wird er wie erwartet abgesendet. Damit dies geschieht, muss die benutzerdefinierte Gültigkeit durch Aufrufen von
setCustomValidity()mit einem leeren Zeichenkettenwert abgebrochen werden. Daher tun wir dies jedes Mal, wenn dasinputEreignis ausgelöst wird. Wenn Sie dies nicht tun, und eine benutzerdefinierte Gültigkeit zuvor gesetzt wurde, wird die Eingabe auch dann als ungültig registriert, wenn sie momentan einen gültigen Wert bei Abgabe enthält.
Hinweis: Validieren Sie Eingabebeschränkungen immer sowohl clientseitig als auch serverseitig. Die Einschränkungsvalidierung beseitigt nicht die Notwendigkeit der Validierung auf der Seite des Servers. Ungültige Werte können dennoch von älteren Browsern oder schlechten Akteuren gesendet werden.
Hinweis:
Firefox unterstützte für viele Versionen ein proprietäres Fehlerattribut — x-moz-errormessage —, mit dem Sie benutzerdefinierte Fehlermeldungen auf ähnliche Weise einstellen konnten. Dieses wurde mit Version 66 entfernt (siehe Firefox Bug 1513890).
Lokalisierung
Die erlaubten Eingaben für bestimmte <input> Typen hängen vom Gebietsschema ab. In einigen Gebietsschemas ist 1.000,00 eine gültige Zahl, während in anderen das gültige Format zur Eingabe dieser Zahl 1.000,00 ist.
Firefox verwendet die folgenden Punkte, um das Gebietsschema zur Validierung der Benutzereingabe zu bestimmen (zumindest für type="number"):
- Versuchen Sie die Sprache, die durch ein
lang/xml:langAttribut am Element oder einem seiner Elternteile angegeben ist. - Versuchen Sie die Sprache, die durch einen
Content-LanguageHTTP-Header angegeben ist. Oder, - Wenn keine angegeben ist, verwenden Sie das Browser-Gebietsschema.
Barrierefreiheit
>Labels
Wenn Eingaben enthalten sind, ist es eine Barrierefreiheitsanforderung, Etiketten hinzuzufügen. Dies ist notwendig, damit Benutzer, die unterstützende Technologien verwenden, erkennen können, wofür die Eingabe ist. Außerdem gibt das Klicken oder Berühren eines Labels den Fokus auf das dem Label zugeordnete Formularsteuerelement. Dies verbessert die Barrierefreiheit und Benutzerfreundlichkeit für sehende Benutzer, erhöht den Bereich, den ein Benutzer klicken oder berühren kann, um das Formularsteuerelement zu aktivieren. Dies ist besonders nützlich (und sogar notwendig) für Radioknöpfe und Kontrollkästchen, die klein sind. Für weitere Informationen über Labels allgemein siehe Labels.
Das folgende Beispiel zeigt, wie das <label>-Element mit einem <input> Element im obigen Stil verknüpft wird. Sie müssen dem <input>-Element ein id-Attribut geben. Das <label> benötigt dann ein for-Attribut, dessen Wert mit dem id des Inputs identisch ist.
<label for="peas">Do you like peas?</label>
<input type="checkbox" name="peas" id="peas" />
Größe
Interaktive Elemente wie Formulareingaben sollten ein ausreichend großes Aktionsfeld bieten, das leicht zu aktiveren ist. Dies hilft einer Vielzahl von Personen, einschließlich Personen mit motorischen Steuerungsproblemen und Personen, die ungenaue Formen der Eingabe verwenden, wie z.B. einen Stift oder Finger. Eine minimale interaktive Größe von 44×44 CSS-Pixeln wird empfohlen.
Technische Zusammenfassung
| Inhaltskategorien |
Fließende Inhalte, gelistet, einreichbar, zurücksetzbar, form-assoziiertes Element,
Phrasing-Inhalte. Wenn der type nicht
hidden ist, dann labelbares Element, fühlbarer Inhalt.
|
|---|---|
| Erlaubter Inhalt | Kein; es ist ein Void-Element. |
| Tag-Auslassung | Muss ein Start-Tag haben und darf keinen End-Tag haben. |
| Erlaubte Eltern | Jedes Element, das Phrasing-Inhalte akzeptiert. |
| Implizite ARIA-Rolle |
|
| Erlaubte ARIA-Rollen |
|
| DOM-Schnittstelle | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
Spezifikationen
| Specification |
|---|
| HTML> # the-input-element> |