<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 July 2015.
* Some parts of this feature may have varying levels of support.
Das <input>
-Element HTML wird verwendet, um interaktive Steuerelemente für webbasierte Formulare zu erstellen, um Daten vom Benutzer zu akzeptieren; Eine Vielzahl von Eingabedatenarten und Steuerelementen sind verfügbar, abhängig vom Gerät und dem User-Agent. Das <input>
-Element ist eines der leistungsfähigsten und komplexesten in HTML aufgrund der Vielzahl an Kombinationen von Eingabetypen und Attributen.
Probieren Sie es aus
<label for="name">Name (4 to 8 characters):</label>
<input
type="text"
id="name"
name="name"
required
minlength="4"
maxlength="8"
size="10" />
label {
display: block;
font:
1rem "Fira Sans",
sans-serif;
}
input,
label {
margin: 0.4rem 0;
}
<input>
-Typen
Wie ein <input>
funktioniert, variiert erheblich, je nach Wert seines type
-Attributs. Daher werden die verschiedenen Typen auf ihren eigenen separaten Referenzseiten behandelt. Wenn dieses Attribut nicht angegeben ist, wird standardmäßig der Typ text
angenommen.
Die verfügbaren Typen sind wie folgt:
Type | Beschreibung | Einfache Beispiele |
---|---|---|
button |
Ein Druckknopf ohne Standardverhalten, der den Wert des value -Attributs anzeigt, standardmäßig leer.
|
|
checkbox | Ein Kontrollkästchen, das es ermöglicht, einzelne Werte auszuwählen oder abzuwählen. |
|
color | Ein Steuerelement zur Angabe einer Farbe; öffnet einen Farbwähler, wenn es in unterstützenden Browsern aktiv ist. |
|
date | Ein Steuerelement zum Eingeben eines Datums (Jahr, Monat und Tag, ohne Zeit). Öffnet einen Datumsauswahl oder numerische Räder für Jahr, Monat, Tag, wenn es in unterstützenden Browsern aktiv ist. |
|
datetime-local | Ein Steuerelement zum Eingeben eines Datums und einer Zeit, ohne Zeitzone. Öffnet einen Datumsauswahl oder numerische Räder für Datum- und Zeitkomponenten, wenn es in unterstützenden Browsern aktiv ist. |
|
Ein Feld zur Bearbeitung einer E-Mail-Adresse. Sieht aus wie ein text -Eingabefeld, verfügt jedoch über Validierungsparameter und ein passendes Keyboard in unterstützenden Browsern und Geräten mit dynamischen Keyboards.
|
|
|
file |
Ein Steuerelement, das es dem Benutzer ermöglicht, eine Datei auszuwählen.
Verwenden Sie das accept -Attribut, um die Dateitypen zu definieren, die das Steuerelement auswählen kann.
|
|
hidden | Ein Steuerelement, das nicht angezeigt wird, aber dessen Wert an den Server übermittelt wird. Es gibt ein Beispiel in der nächsten Spalte, aber es ist verborgen! | |
image |
Ein graphischer submit -Button. 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 eine Standardvalidierung hinzu. Zeigt eine numerische Tastatur in einigen Geräten mit dynamischen Tastaturen an. |
|
password | Ein einzeiliges Textfeld, dessen Wert verschleiert ist. Warnt den Benutzer, wenn die Seite nicht sicher ist. |
|
radio |
Ein Optionsknopf, der es ermöglicht, einen einzelnen Wert aus mehreren Optionen mit demselben name -Wert auszuwählen.
|
|
range |
Ein Steuerelement zur Eingabe einer Zahl, deren exakter Wert nicht wichtig ist.
Wird als Bereichs-Widget dargestellt, standardmäßig mit dem mittleren Wert.
Wird in Verbindung mit min und max verwendet, um den Bereich der akzeptablen Werte zu definieren.
|
|
reset | Ein Button, der die Inhalte 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 ein Löschsymbol in unterstützenden Browsern enthalten, das zum Löschen des Feldes verwendet werden kann. Zeigt ein Suchsymbol anstelle der Enter-Taste auf einigen Geräten mit dynamischen Tastaturen an. |
|
submit | Ein Button, der das Formular absendet. |
|
tel | Ein Steuerelement zur Eingabe einer Telefonnummer. Zeigt eine Telefontastatur auf einigen Geräten mit dynamischen Tastaturen an. |
|
text | Der Standardwert. Ein einzeiliges Textfeld. Zeilenumbrüche werden automatisch aus dem Eingabewert entfernt. |
|
time | Ein Steuerelement zur Eingabe eines Zeitwertes ohne Zeitzone. |
|
url |
Ein Feld zur Eingabe einer URL. Sieht aus wie ein text -Eingabefeld, hat jedoch Validierungsparameter und ein passendes Keyboard in unterstützenden Browsern und Geräten mit dynamischen Keyboards.
|
|
week | Ein Steuerelement zur Eingabe eines Datums bestehend aus einer Wochennummer und einer Jahreszahl ohne Zeitzone. |
|
Veraltete Werte | ||
datetime
Veraltet
|
Ein Steuerelement zur Eingabe eines Datums und einer Zeit (Stunde, Minute, Sekunde und Bruchteile von Sekunden) basierend auf der UTC-Zeitzone. |
|
Attribute
Das <input>
-Element ist so leistungsfähig wegen seiner Attribute; das type
-Attribut, oben mit Beispielen beschrieben, ist das wichtigste. Da jedes <input>
-Element, unabhängig vom Typ, auf der HTMLInputElement
-Schnittstelle basiert, teilen sie sich technisch denselben Satz von Attributen. In der Realität wirken sich jedoch die meisten Attribute nur auf eine bestimmte Untermenge von Eingabetypen aus. Darüber hinaus hängt die Art und Weise, wie einige Attribute eine Eingabe beeinflussen, vom Eingabetyp ab und beeinflusst unterschiedliche Eingabetypen auf unterschiedliche Weise.
Dieser Abschnitt bietet eine Tabelle mit einer Liste von Attributen und einer kurzen Beschreibung. Auf diese Tabelle folgt eine Liste, die jedes Attribut im Detail beschreibt, zusammen mit den Eingabetypen, mit denen es verbunden ist. Diejenigen, die für die meisten oder alle Eingabetypen gemeinsam sind, werden im Folgenden ausführlicher definiert. Attribute, die für bestimmte Eingabetypen einzigartig sind – oder Attribute, die für alle Eingabetypen gemeinsam sind, aber ein spezielles Verhalten haben, wenn sie bei 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 erwarteten Dateityp in Datei-Upload-Steuerelementen |
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 bei eingegebenem Text. |
autocomplete |
alle außer checkbox , radio und Buttons |
Hinweis für Formular-Autovervollständigungsfunktion |
capture |
file |
Methode der Medienaufnahme in Datei-Upload-Steuerelementen |
checked |
checkbox , radio |
Ob der Befehl oder das Steuerelement aktiviert ist |
dirname |
hidden , text , search , url , tel , email |
Name des Formularfeldes zur Verwendung beim Senden der Elementrichtung bei der Formularübermittlung |
disabled |
alle | Ob das Formular-Steuerelement deaktiviert ist |
form |
alle | Verknüpft das Steuerelement mit einem Formularelement |
formaction |
image , submit |
URL für die Formularübermittlung zu verwenden |
formenctype |
image , submit |
Formular-Datensatz-Codierungsart zur Verwendung bei der Formularübermittlung |
formmethod |
image , submit |
HTTP-Methode zur Verwendung bei der Formularübermittlung |
formnovalidate |
image , submit |
Überspringt die Formularsteuerungsvalidierung für die Formularübermittlung |
formtarget |
image , submit |
Browsing-Kontext für die Formularübermittlung |
height |
image |
Gleich wie das height-Attribut für <img> ; vertikale Dimension |
list |
alle außer hidden , password , checkbox , radio und Buttons |
Wert des id-Attributs der <datalist> mit Autovervollständigungsoptionen |
max |
date , month , week , time , datetime-local , number , range |
Höchstwert |
maxlength |
text , search , url , tel , email , password |
Maximale Länge (Anzahl der Zeichen) von value |
min |
date , month , week , time , datetime-local , number , range |
Minimalwert |
minlength |
text , search , url , tel , email , password |
Minimale Länge (Anzahl der Zeichen) von value |
multiple |
email , file |
Boolean. Ob es erlaubt ist, mehrere Werte zuzulassen |
name |
alle | Name des Formularsteuerelements. Wird mit dem Formular als Teil eines name/value-Paares übermittelt |
pattern |
text , search , url , tel , email , password |
Muster, das der value erfüllen muss, um gültig zu sein |
placeholder |
text , search , url , tel , email , password , number |
Text, der im Formularsteuerelement angezeigt wird, wenn es keinen Wert hat |
popovertarget |
button |
Bezeichnet ein <input type="button"> als Steuerungselement für ein Popover-Element |
popovertargetaction |
button |
Gibt die Aktion an, die ein Popover-Steuerungselement ausführen soll |
readonly |
alle außer hidden , range , color , checkbox , radio und Buttons |
Boolean. Der Wert kann nicht bearbeitet werden |
required |
alle außer hidden , range , color und Buttons |
Boolean. Ein Wert ist erforderlich oder muss überprüft werden, damit das Formular übermittelbar ist |
size |
text , search , url , tel , email , password |
Größe des Steuerelements |
src |
image |
Gleich wie das src -Attribut für <img> ; Adresse der Bildressource |
step |
date , month , week , time , datetime-local , number , range |
Inkrementelle Werte, die gültig sind |
type |
alle | Typ des Formularsteuerelements |
value |
alle außer image |
Der Wert des Steuerelements. Bei Angabe im HTML entspricht er dem Anfangswert |
width |
image |
Gleich wie das width -Attribut für <img> |
Einige zusätzliche nicht-standardmäßige Attribute werden nach den Beschreibungen der standardmäßigen Attribute aufgelistet.
Einzelattribute
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. alt
-
Gültig nur für den
image
-Button, bietet dasalt
-Attribut alternativen Text für das Bild und zeigt den Wert des Attributs an, wenn das Bildsrc
fehlt oder anderweitig nicht geladen werden kann. Siehe den image-Eingabetyp. autocapitalize
-
Steuert, ob eingegebener Text automatisch großgeschrieben wird und, falls ja, in welcher Weise. Weitere Informationen finden Sie auf der Seite des globalen Attributs
autocapitalize
. autocomplete
-
(Kein Boolean-Attribut!) Das
autocomplete
-Attribut nimmt als Wert eine durch Leerzeichen getrennte Zeichenkette, die beschreibt, welcher Art von Autovervollständigungsfunktionalität die Eingabe bereitstellen soll, wenn überhaupt. Eine typische Implementierung der Autovervollständigung erinnert sich an zuvor eingegebene Werte im selben Eingabefeld, aber komplexere Formen der Autovervollständigung können existieren. Zum Beispiel könnte ein Browser mit der Kontaktliste eines Geräts integriert werden, umemail
-Adressen in einem E-Mail-Eingabefeld zu vervollständigen. Sieheautocomplete
für erlaubte Werte.Das
autocomplete
-Attribut ist aufhidden
,text
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
,range
,color
undpassword
gültig. Dieses Attribut hat keine Auswirkung auf Eingabetypen, die keine numerischen oder Textdaten zurückgeben, und ist für alle Eingabetypen außercheckbox
,radio
,file
oder einer der Button-Typen gültig.Weitere Informationen, einschließlich Informationen zu Passwortsicherheit und wie
autocomplete
beihidden
leicht anders als bei anderen Eingabetypen ist, finden Sie unterautocomplete
attribute. autofocus
-
Ein Boolean-Attribut, welches, falls vorhanden, angibt, dass das Eingabefeld automatisch den Fokus erhalten soll, nachdem die Seite geladen wurde (oder wenn das
<dialog>
-Element angezeigt wurde).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 platziert ist, erhält das erste mit dem Attribut den Fokus.Das
autofocus
-Attribut kann nicht auf Eingaben des Typshidden
verwendet werden, da versteckte Eingaben nicht fokussiert werden können.Warnung: Das automatische Fokussieren eines Formularsteuerelements kann visuell eingeschränkte Menschen, die Bildschirmlesetechnologie verwenden, und Menschen mit kognitiven Beeinträchtigungen verwirren. Wenn
autofocus
zugewiesen ist, "teleportieren" Bildschirmleser ihren Benutzer ohne vorherige Warnung zu dem Formularsteuerelement.Verwenden Sie das
autofocus
-Attribut unter Berücksichtigung der Barrierefreiheit. Automatisches Fokussieren auf ein Steuerelement kann dazu führen, dass die Seite beim Laden scrollt. Der Fokus kann auch dynamische Tastaturen auf einigen Touch-Geräten anzeigen. Während ein Bildschirmlesegerät das Label des Formularsteuerelements mit Fokus ankündigen wird, wird es vor dem Label nichts ankündigen, und der sehende Benutzer auf einem kleinen Gerät wird genauso den Kontext durch den vorhergehenden Inhalt verpassen. capture
-
Eingeführt in der HTML Media Capture-Spezifikation und nur für den
file
-Eingabetyp gültig, definiert dascapture
-Attribut, welches Medium—Mikrofon, Video oder Kamera—verwendet werden soll, um eine neue Datei für den Upload mitfile
-Upload-Steuerelement in unterstützenden Szenarien zu erfassen. Siehe den file-Eingabetyp. checked
-
Gültig für sowohl
radio
- als auchcheckbox
-Typen, istchecked
ein Boolean-Attribut. Falls bei einemradio
-Typ vorhanden, gibt es an, dass der Optionsknopf der aktuell ausgewählte in der Gruppe von gleichnamigen Radio-Buttons ist. Falls bei einemcheckbox
-Typ vorhanden, gibt es an, dass das Kontrollkästchen standardmäßig aktiviert ist (wenn die Seite lädt). Es gibt nicht an, ob dieses Kontrollkästchen aktuell aktiviert ist: wenn der Zustand des Kontrollkästchens geändert wird, spiegelt dieses Inhaltsattribut die Änderung nicht wider. (Nur dasHTMLInputElement
'schecked
IDL-Attribut wird aktualisiert.)Hinweis: Anders als andere Eingabesteuerungen, werden ein Kontrollkästchen und Radio-Buttons-Werte nur in die übermittelten Daten einbezogen, wenn sie derzeit
checked
sind. Wenn sie es sind, werden der Name und die Wert(e) der aktivierten Steuerelemente übermittelt.Zum Beispiel, wenn ein Kontrollkästchen, dessen
name
fruit
ist, einenvalue
voncherry
hat und das Kontrollkästchen aktiviert ist, werden die übermittelten Formulardatenfruit=cherry
beinhalten. Wenn das Kontrollkästchen nicht aktiv ist, wird es überhaupt nicht in den Formulardaten aufgeführt. Der Standardwertvalue
für Kontrollkästchen und Radio-Buttons iston
. dirname
-
Gültig für
hidden
,text
,search
,url
,tel
undemail
-Eingabetypen, ermöglicht dasdirname
-Attribut die Übermittlung der Richtungsangabe des Elements. Wenn es enthalten ist, wird das Formularsteuerelement mit zwei Name/Wert-Paaren übermittelt: das erste ist dername
undvalue
, und das zweite ist der Wert desdirname
-Attributs als Name, mit einem Wert vonltr
oderrtl
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 obenstehende Formular übermittelt wird, wird die Eingabe sowohl das
name
/value
-Paarfruit=cherry
als auch dasdirname
/ Richtungs-Paarfruit-dir=ltr
senden. Für weitere Informationen siehe dasdirname
attribute. disabled
-
Ein Boolean-Attribut, das, falls vorhanden, anzeigt, dass der Benutzer nicht mit der Eingabe interagieren können soll. Deaktivierte Eingaben werden typischerweise mit einer dunkleren Farbe oder in irgendeiner anderen Form angezeigt, die anzeigt, dass das Feld nicht zur Benutzung verfügbar ist.
Insbesondere erhalten deaktivierte Eingaben nicht das
click
-Ereignis, und deaktivierte Eingaben werden nicht mit dem Formular übermittelt.Hinweis: Auch wenn es nicht von der Spezifikation gefordert wird, wird Firefox standardmäßig den dynamischen deaktivierten Status speichern eines
<input>
über Seitenladungen. Verwenden Sie dasautocomplete
-Attribut, um diese Funktion zu steuern. form
-
Ein String, der das
<form>
-Element angibt, mit dem die Eingabe verknüpft ist (d.h. sein Formularinhaber). Der Wert dieses Strings, falls vorhanden, muss mit derid
eines<form>
-Elements im selben Dokument übereinstimmen. Wenn dieses Attribut nicht angegeben wird, ist das<input>
-Element mit dem am nächsten gelegenen beinhaltenden Formular verknüpft, falls vorhanden.Das
form
-Attribut ermöglicht es, eine Eingabe irgendwo im Dokument zu platzieren, aber sie mit einem Formular an einer anderen Stelle im Dokument einzuschließen.Hinweis: Eine Eingabe kann nur mit einem Formular verknüpft werden.
formaction
-
Gültig nur für die Eingabetypen
image
undsubmit
. Siehe den submit-Eingabetyp für weitere Informationen. formenctype
-
Gültig nur für die Eingabetypen
image
undsubmit
. Siehe den submit-Eingabetyp für weitere Informationen. formmethod
-
Gültig nur für die Eingabetypen
image
undsubmit
. Siehe den submit-Eingabetyp für weitere Informationen. formnovalidate
-
Gültig nur für die Eingabetypen
image
undsubmit
. Siehe den submit-Eingabetyp für weitere Informationen. formtarget
-
Gültig nur für die Eingabetypen
image
undsubmit
. Siehe den submit-Eingabetyp für weitere Informationen. height
-
Gültig nur für den
image
-Eingabe-Button, ist dieheight
die Höhe der Bilddatei, die angezeigt werden soll, um den grafischen Senden-Button darzustellen. Siehe den image-Eingabetyp. id
-
Globales Attribut, gültig für alle Elemente, einschließlich aller Eingabetypen, definiert eine eindeutige Kennung (ID), die im gesamten Dokument einzigartig sein muss. Sein Zweck ist die Identifizierung des Elements bei Verlinkungen. Der Wert wird als Wert der
for
-Eigenschaft des<label>
-Elements verwendet, um das Label mit dem Formularsteuerelement zu verknüpfen. Siehe<label>
. inputmode
-
Globaler Wert, gültig für alle Elemente, gibt Hinweis an Browser, welche Art von virtueller Keyboard-Konfiguration bei der Bearbeitung dieses Elements oder seines Inhalts zu verwenden ist. Werte umfassen
none
,text
,tel
,url
,email
,numeric
,decimal
undsearch
. list
-
Der dem
list
-Attribut gegebene Wert sollte dieid
eines<datalist>
-Elements im selben Dokument sein. Die<datalist>
bietet eine Liste von vordefinierten Werten an, die dem Benutzer als Vorschläge für diese Eingabe angeboten werden. Alle in der Liste enthaltenen Werte, die nicht mit demtype
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 bereitstellen.Es ist gültig auf
text
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
,range
undcolor
.Gemäß den Spezifikationen wird das
list
-Attribut nicht von den Typenhidden
,password
,checkbox
,radio
,file
oder irgendeinem der Button-Typen unterstützt.Abhängig vom Browser sieht der Benutzer möglicherweise eine benutzerdefinierte Farbpalette als Vorschlag, Taktmarken entlang eines Bereichs oder sogar eine Eingabe, die wie eine
<select>
öffnet, aber nicht gelistete Werte zulässt. 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
,number
undrange
, es definiert den größten Wert im Bereich der zulässigen Werte. Wenn dervalue
, der in das Element eingegeben wird, diesen überschreitet, schlägt das Element bei der Beschränkungsprüfung fehl. Wenn der Wert desmax
-Attributs keine Zahl ist, hat das Element keinen Höchstwert.Es gibt einen Sonderfall: wenn der Datentyp periodisch ist (zum Beispiel für Daten oder Zeiten), kann der Wert von
max
niedriger als der Wert vonmin
sein, was anzeigt, dass der Bereich umlaufen darf; zum Beispiel ermöglicht dies, einen Zeitbereich von 22 Uhr bis 4 Uhr morgens festzulegen. maxlength
-
Gültig für
text
,search
,url
,tel
,email
, undpassword
, definiert die maximale Zeichenlänge (gemessen in UTF-16-Codeeinheiten), die der Benutzer in das Feld eingeben kann. Dies muss ein ganzzahliger Wert von 0 oder höher sein. Wenn keinmaxlength
angegeben ist oder ein ungültiger Wert angegeben ist, hat das Feld keine maximale Länge. Dieser Wert muss auch größer oder gleich dem Wert vonminlength
sein.Die Eingabe wird bei der Beschränkungsprüfung fehlschlagen, wenn die Länge des Textes, der in das Feld eingegeben wird, länger als die
maxlength
UTF-16-Codeeinheiten ist. Standardmäßig verhindern Browser, dass Benutzer mehr Zeichen eingeben, als dasmaxlength
-Attribut erlaubt. Die Beschränkungsprüfung wird nur angewendet, wenn der Wert vom Benutzer geändert wird. Weitere Informationen finden Sie unter Client-side validation. min
-
Gültig für
date
,month
,week
,time
,datetime-local
,number
undrange
, es definiert den geringsten Wert im Bereich der zulässigen Werte. Wenn dervalue
, der in das Element eingegeben wird, weniger als das ist, schlägt das Element bei der Beschränkungsprüfung fehl. Wenn dermin
-Attributwert keine Zahl ist, hat das Element keinen Mindestwert.Dieser Wert muss kleiner oder gleich dem des
max
-Attributs sein. Wenn dasmin
-Attribut vorhanden ist, aber nicht angegeben oder ungültig ist, wird kein Mindeswert angewendet. Wenn dasmin
-Attribut gültig ist und ein nicht leerer Wert niedriger ist als das Minimum, das durchmin
erlaubt ist, wird die Beschränkungsprüfung die Formularübermittlung verhindern. Weitere Informationen finden Sie unter Client-side validation.Es gibt einen Sonderfall: wenn der Datentyp periodisch ist (zum Beispiel für Daten oder Zeiten), kann der Wert von
max
niedriger als der Wert vonmin
sein, was anzeigt, dass der Bereich umlaufen darf; zum Beispiel ermöglicht dies, einen Zeitbereich von 22 Uhr bis 4 Uhr morgens festzulegen. minlength
-
Gültig für
text
,search
,url
,tel
,email
, undpassword
, definiert die minimale Zeichenlänge (gemessen in UTF-16 Codeeinheiten), die der Benutzer in das Eingabefeld eingeben kann. Dies muss ein nicht-negativer ganzzahliger Wert sein, der kleiner oder gleich dem Wert vonmaxlength
ist. Wenn keinminlength
angegeben ist oder ein ungültiger Wert angegeben ist, hat die Eingabe keine Mindestlänge.Die Eingabe wird bei der Beschränkungsprüfung fehlschlagen, wenn die Länge des Textes, der in das Feld eingegeben wird, kürzer als
minlength
UTF-16 Codeeinheiten ist, wodurch die Formularübermittlung verhindert wird. Die Beschränkungsprüfung wird nur angewendet, wenn der Wert vom Benutzer geändert wird. Weitere Informationen finden Sie unter Client-side validation. multiple
-
Das Boolean-Attribut
multiple
, falls gesetzt, bedeutet, dass der Benutzer Komma getrennte E-Mail-Adressen im E-Mail-Widget eingeben oder mehr als eine Datei mit derfile
-Eingabe auswählen kann. Sehen Sie den email und file Eingabetyp. name
-
Ein String, der einen Namen für das Eingabefeld angibt. Dieser Name wird zusammen mit dem Wert des Steuerelements übermittelt, wenn die Formulardaten übermittelt werden.
Betrachten Sie den
name
als ein erforderliches Attribut (auch wenn es nicht so ist). Wenn eine Eingabe kein angegebenesname
hat oder dasname
leer ist, wird der Eingabewert nicht mit dem Formular übermittelt! (Deaktivierte Steuerelemente, nicht aktivierte Radio-Buttons, nicht aktivierte Kontrollkästchen und Reset-Buttons werden ebenfalls nicht gesendet.)Es gibt zwei Sonderfälle:
_charset_
: Wenn es als Name eines<input>
-Elements vom Typ hidden verwendet wird, wird der Eingabewert automatisch vom User-Agent auf die Zeichencodierung gesetzt, die zur Übermittlung des Formulars verwendet wird.isindex
: Aus historischen Gründen ist der Nameisindex
nicht erlaubt.
Das
name
-Attribut erzeugt ein einzigartiges Verhalten für Radio-Buttons.Nur einer der Radio-Buttons in einer gleichnamigen Gruppe von Radio-Buttons kann gleichzeitig aktiviert werden. Das Auswählen eines der Radio-Buttons in dieser Gruppe deaktiviert automatisch alle aktuell ausgewählten Radio-Buttons in derselben Gruppe. Der Wert dieses einen aktivierten Radio-Buttons wird zusammen mit dem Namen übermittelt, wenn das Formular übermittelt wird.
Beim Wechseln in eine Serie von gleichnamigen Radio-Button-Gruppen, wenn einer aktiviert ist, erhält dieser den Fokus. Wenn sie in der Quellreihenfolge nicht zusammen gruppiert sind, wenn einer der Gruppe aktiviert ist, beginnt das Wechseln in die Gruppe, wenn der erste in der Gruppe erreicht wird und überspringt alle, die nicht aktiviert sind. Mit anderen Worten, wenn einer aktiviert ist, wird das Wechseln die nicht aktivierten Radio-Buttons in der Gruppe überspringen. Wenn keiner aktiviert ist, erhält die Radio-Button-Gruppe den Fokus, wenn der erste Button in der gleichnamigen Gruppe erreicht ist.
Sobald einer der Radio-Buttons in einer Gruppe den Fokus hat, navigieren die Pfeiltasten durch alle Radio-Buttons desselben Namens, selbst wenn die Radio-Buttons nicht in der Quellreihenfolge gruppiert sind.
Wenn ein Eingabefeld ein
name
zugewiesen bekommt, wird dieser zu einer Eigenschaft derHTMLFormElement.elements
-Eigenschaft des Formular-Elements, dem es gehört. Wenn Sie eine Eingabe haben, derenname
aufguest
gesetzt ist und eine andere, derenname
aufhat-size
gesetzt ist, kann der folgende Code verwendet werden:jslet form = document.querySelector("form"); let guestName = form.elements.guest; let hatSize = form.elements["hat-size"];
Nachdem dieser Code ausgeführt wurde, wird
guestName
dasHTMLInputElement
für dasguest
-Feld sein undhatSize
das Objekt für dashat-size
-Feld.Warnung: Vermeiden Sie es, Formularelementen einen
name
zu geben, der einem eingebauten Attribut des Formulars entspricht, da Sie dann das vordefinierte Attribut oder die Methode mit diesem Bezug auf das entsprechende Eingabefeld überschreiben würden. pattern
-
Gültig für
text
,search
,url
,tel
,email
undpassword
, wird daspattern
-Attribut verwendet, um eine reguläre Ausdrücke zu erstellen, dievalue
der Eingabe erfüllen muss, um die Beschränkungsprüfung zu bestehen. Es muss ein gültiger JavaScript-Regulärer Ausdruck sein, wie er von derRegExp
-Typ verwendet wird und wie in unserem Leitfaden für reguläre Ausdrücke dokumentiert. Es sollten keine Schrägstriche um den Mustertext angegeben werden. Beim Kompilieren des regulären Ausdrucks:- wird das Muster automatisch mit
^(?:
und)$
umschlossen, sodass das Muster einen Match gegen den ganzen Eingabewert erfordert, d.h.^(?:<pattern>)$
. - wird das
'v'
-Flag spezifiziert, sodass das Muster als Sequenz von Unicode-Kodepunkten behandelt wird, anstatt als ASCII.
Wenn das
pattern
-Attribut vorhanden ist, aber nicht angegeben oder ungültig ist, wird kein regulärer Ausdruck angewendet und dieses Attribut wird völlig ignoriert. Wenn das Muster-Attribut gültig ist und ein nicht leerer Wert nicht dem Muster entspricht, wird die Beschränkungsprüfung die Formularübermittlung verhindern. Wenn dasmultiple
vorhanden ist, wird der kompilierte reguläre Ausdruck gegen jeden durch Komma getrennten Wert gematcht.Hinweis: Wenn Sie das
pattern
-Attribut verwenden, informieren Sie den Benutzer über das erwartete Format, indem Sie erklärenden Text in der Nähe einfügen. Sie können auch eintitle
-Attribut einschließen, um zu erklären, was die Anforderungen sind, um dem Muster zu entsprechen; die meisten Browser werden diesen Titel als Tooltip anzeigen. Die sichtbare Erklärung ist für die Barrierefreiheit erforderlich. Der Tooltip ist eine Verbesserung.Weitere Informationen finden Sie unter Client-side validation.
- wird das Muster automatisch mit
placeholder
-
Gültig für
text
,search
,url
,tel
,email
,password
undnumber
, bietet dasplaceholder
-Attribut einen kurzen Hinweis für den Benutzer, welche Art von Informationen im Feld erwartet werden. Es sollte ein Wort oder eine kurze Phrase sein, die einen Hinweis auf die erwartete Art der Daten bietet, anstatt eine Erklärung oder Eingabeaufforderung. Der Text darf nicht Wagenrückläufe oder Zeilenvorschübe enthalten. Wenn zum Beispiel ein Feld erwartet, den Vornamen eines Benutzers zu erfassen, und sein Label "Vorname" ist, könnte ein geeignetes Platzhalter "z.B. Mustafa" sein.Hinweis: Das
placeholder
-Attribut ist nicht so semantisch nützlich wie andere Möglichkeiten, Ihr Formular zu erklären, und kann unerwartete technische Probleme mit Ihrem Inhalt verursachen. Weitere Informationen finden Sie unter Labels. popovertarget
-
Schaltet ein
<input type="button">
-Element in eine Popover-Steuerung um; nimmt die ID des Popover-Elements, das gesteuert werden soll, als Wert. Weitere Informationen finden Sie auf der Popover API-Startseite. Das Erstellen einer Beziehung zwischen einem Popover und ihrem Aufrufer-Button mit dempopovertarget
-Attribut hat zwei zusätzliche nützliche Effekte:- Der Browser erstellt eine implizite
aria-details
undaria-expanded
-Beziehung zwischen Popover und Aufrufer und platziert das Popover in einer logischen Position in der Tastaturnavigationsfolge, wenn es angezeigt wird. Das macht das Popover zugänglicher für Tastatur- und unterstützende Technologie-Benutzer (AT-Benutzer) (siehe auch Popover-Zugänglichkeitsfunktionen). - Der Browser erstellt eine implizite Ankerreferenz zwischen den beiden, was es sehr komfortabel macht, Popovers relativ zu ihren Steuerungen mit CSS-Ankers-Positionierung zu positionieren. Weitere Informationen finden Sie unter Popover-Anker-Positionierung.
- Der Browser erstellt eine implizite
popovertargetaction
-
Gibt die Aktion an, die auf ein Popover-Element angewendet 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 anzeigen. Wenn Sie versuchen, ein bereits angezeigtes Popover anzuzeigen, wird keine Aktion durchgeführt.
"toggle"
-
Der Button wird ein Popover zwischen Anzeigemodus und Verborgenheitsmodus umschalten. Wenn das Popover versteckt ist, wird es angezeigt; wenn das Popover angezeigt wird, wird es versteckt. Wenn
popovertargetaction
weggelassen wird, ist"toggle"
die Standardaktion, die von der Steuerung ausgeführt wird.
readonly
-
Ein Boolean-Attribut, das, falls vorhanden, anzeigt, dass der Benutzer den Wert der Eingabe nicht bearbeiten kann. Das
readonly
-Attribut wird von den Eingabetypentext
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
undpassword
unterstützt.Weitere Informationen finden Sie im HTML-Attribut
readonly
. required
-
required
ist ein Boolean-Attribut, das, falls vorhanden, anzeigt, dass der Benutzer einen Wert für die Eingabe angeben muss, bevor das Formular, zu dem es gehört, übermittelt werden kann. Dasrequired
-Attribut wird von den Eingabetypentext
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
,password
,checkbox
,radio
undfile
unterstützt.Weitere Informationen finden Sie unter Client-side validation und im HTML-Attribut
required
. size
-
Gültig für
email
,password
,tel
,url
undtext
, spezifiziert dassize
-Attribut, wie viel der Eingabe angezeigt wird. Grundsätzlich erzielt es das gleiche Ergebnis, wie das Setzen der CSSwidth
Eigenschaft mit ein paar Besonderheiten. Der tatsächliche Einheit des Wertes hängt vom Eingabetyp ab. Fürpassword
undtext
ist es eine Anzahl von Zeichen (oderem
Einheiten) mit einem Standardwert von20
, und für andere ist es Pixel (oderpx
Einheiten). CSSwidth
hat Vorrang über dassize
-Attribut. src
-
Gültig nur für den
image
-Eingabe-Button, ist dassrc
ein String, der die URL der Bilddatei angibt, die angezeigt werden soll, um den grafischen Senden-Button darzustellen. Siehe den image-Eingabetyp. step
-
Gültig für
date
,month
,week
,time
,datetime-local
,number
undrange
, ist dasstep
-Attribut eine Zahl, die die Granularität angibt, an die sich der Wert halten muss.Wenn nicht explizit eingeschlossen:
step
ist standardmäßig 1 fürnumber
undrange
.- Jeder Datum-/Uhrzeit-Eingabetyp hat einen Standardwert für
step
, der für den Typ geeignet ist; siehe die individuellen Eingabeseiten:date
,datetime-local
,month
,time
undweek
.
Der Wert muss eine positive Zahl—ganz oder mit Komma—sein oder der spezielle Wert
any
, was bedeutet, dass kein Schrittverhalten angenommen wird und jeder Wert erlaubt ist (ausgenommen andere Einschränkungen, wiemin
undmax
).Wenn
any
nicht explizit gesetzt ist, sind gültige Werte für dienumber
, Datum/Uhrzeit-Eingabefelder undrange
Eingabefelder gleichbedeutend zur Basis für den Schritt—demmin
-Wert und Inkrementen des Schrittwerts, bis zummax
-Wert, falls angegeben.Zum Beispiel, wenn Sie
<input type="number" min="10" step="2">
haben, dann ist jede gerade Ganzzahl,10
oder größer, gültig. Wenn weggelassen,<input type="number">
, ist jede Ganzzahl gültig, aber Fließkommazahlen (wie4.2
) sind nicht gültig, weilstep
standardmäßig1
ist. Damit4.2
gültig ist, hättestep
aufany
, 0.1, 0.2, oder dermin
-Wert hätte eine Zahl sein müssen, die auf.2
endet, wie<input type="number" min="-5.2">
.Hinweis: Wenn die vom Benutzer eingegebenen Daten nicht der Schritt-Konfiguration entsprechen, wird der Wert in der Beschränkungsprüfung als ungültig angesehen und entspricht dem
:invalid
Pseudoklasse.Weitere Informationen finden Sie unter Client-side validation.
tabindex
-
Globales Attribut, gültig für alle Elemente, einschließlich aller Eingabetypen, ein ganzzahliges Attribut, das angibt, ob das Element den Eingabefokus erlangen kann (fokusierbar ist) und ob es an der sequentiellen Tastaturnavigation teilnehmen soll. Da alle Eingabetypen mit Ausnahme von
hidden
fokusierbar sind, sollte dieses Attribut nicht auf Formularelementen verwendet werden, weil dies ein Management der Fokusreihenfolge für alle Elemente innerhalb des Dokuments 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 Text enthält, der Beratung zu dem Element bietet, zu dem es gehört. Solche Informationen können typischerweise, aber nicht notwendigerweise, dem Benutzer als Tooltip präsentiert werden. Der Titel sollte NICHT als primäre Erklärung des Zwecks des Formularsteuerelements verwendet werden. Stattdessen verwenden Sie das
<label>
-Element mit einerfor
-Eigenschaft, die auf dieid
-Eigenschaft des Formularsteuerelements gesetzt ist. Siehe Labels unten. type
-
Ein String, der den zu rendernden Steuerungstyp angibt. Zum Beispiel, um eine Checkbox zu erstellen, wird ein Wert von
checkbox
verwendet. Wenn weggelassen (oder ein unbekannter Wert angegeben wird), wird der Eingabetyptext
verwendet, was ein Klartext-Eingabefeld erstellt.Erlaubte Werte sind in Eingabetypen oben aufgeführt.
value
-
Der Wert des Eingabefeld-Steuerelements. Bei Angabe im HTML, ist dies der Anfangswert, und danach kann dieser jederzeit geändert oder abgerufen werden, indem JavaScript verwendet wird, um auf die entsprechende
HTMLInputElement
-Objekteigenschaftvalue
zuzugreifen. Dasvalue
-Attribut ist immer optional, sollte jedoch als obligatorisch fürcheckbox
,radio
undhidden
betrachtet werden. width
-
Gültig nur für den
image
-Eingabe-Button, ist diewidth
die Breite der Bilddatei, die angezeigt werden soll, um den grafischen Senden-Button darzustellen. Siehe den image-Eingabetyp.
Nicht-standardmäßige Attribute
Die folgenden nicht-standardmäßigen Attribute sind auf einigen Browsern ebenfalls verfügbar. Als allgemeine Regel sollten Sie vermeiden, diese zu verwenden, es sei denn, es ist nicht zu vermeiden.
Attribut | Beschreibung |
---|---|
incremental |
Ob wiederholte [`search`](/de/docs/Web/API/HTMLInputElement/search_event)-Ereignisse gesendet werden sollen, um das Live-Update von Suchergebnissen zu ermöglichen, während der Benutzer noch den Wert des Feldes bearbeitet. Nur WebKit und Blink (Safari, Chrome, Opera, usw.). |
mozactionhint
Veraltet
|
Ein String, der den Typ der 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 ein geeignetes Label für diese Taste auf einer virtuellen Tastatur zu bestimmen. Da dieses Attribut veraltet ist, verwenden Sie |
orient |
Legt die Ausrichtung des Bereichsschiebers 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 das Wählen eines Verzeichnisses (oder Verzeichnisse, wenn multiple ebenfalls vorhanden ist) erlaubt ist.
|
incremental
Nicht standardisiert-
Das Boolean-Attribut
incremental
ist eine WebKit- und Blink-Erweiterung (also unterstützt durch Safari, Opera, Chrome, usw.), die, falls vorhanden, dem User-Agent angibt, die Eingabe als Live-Suche zu verarbeiten. Während der Benutzer den Wert des Feldes bearbeitet, sendet der Nutzer-Agentsearch
-Ereignisse an dasHTMLInputElement
-Objekt, das die Suchbox darstellt. Dadurch kann Ihr Code die Suchergebnisse in Echtzeit aktualisieren, während der Benutzer die Suche bearbeitet.Wenn
incremental
nicht angegeben ist, wird dassearch
-Ereignis nur gesendet, wenn der Benutzer die Suche ausdrücklich initiiert (z.B. indem er die Enter oder Return-Taste während der Bearbeitung des Feldes drückt).Das
search
-Ereignis ist ratifiziert, sodass es nicht häufiger als in einem implementierungsdefinierten Intervall gesendet wird. orient
Nicht standardisiert-
Ähnlich wie die nicht-standardmäßige CSS-Eigenschaft -moz-orient, die die
<progress>
- und<meter>
-Elemente beeinflusst, definiert dasorient
-Attribut die Ausrichtung des Bereichsschiebers. Werte umfassenhorizontal
, was bedeutet, dass der Bereich horizontal gerendert wird, undvertical
, wo der Bereich vertikal gerendert wird. Siehe Vertical form controls erstellen für einen modernen Ansatz zum Erstellen von vertikalen Formularelementen. results
Nicht standardisiert-
Das
results
-Attribut – nur von Safari unterstützt – ist ein Zählwert, der Ihnen ermöglicht, die maximale Anzahl von Einträgen zu überschreiben, die im nativ bereitgestellten Dropdown-Menü des<input>
-Elements von vorherigen Suchanfragen angezeigt werden.Der Wert muss eine nicht negative Dezimalzahl sein. Wenn nicht bereitgestellt oder ein ungültiger Wert gegeben wird, wird die standardmäßige maximale Eintragsmenge des Browsers verwendet.
webkitdirectory
Nicht standardisiert-
Das Boolean-Attribut
webkitdirectory
, falls vorhanden, gibt an, dass nur Verzeichnisse durch den Benutzer in der Dateiauswahl-Schnittstelle ausgewählt werden können. Weitere Einzelheiten und Beispiele finden Sie unterHTMLInputElement.webkitdirectory
.Obwohl es ursprünglich nur für WebKit-basierte Browser implementiert wurde, ist
webkitdirectory
auch in Microsoft Edge und Firefox 50 und später verwendbar. Obwohl es eine relativ breite Unterstützung hat, ist es immer noch nicht standardisiert und sollte nicht verwendet werden, es sei denn, es gibt keine Alternative.
Methoden
Die folgenden Methoden werden von der HTMLInputElement
-Schnittstelle bereitgestellt, die <input>
-Elemente im DOM darstellt. Auch verfügbar sind die Methoden, die von den sich übergeordneten Schnittstellen, HTMLElement
, Element
, Node
und EventTarget
spezifiziert werden.
checkValidity()
-
Gibt
true
zurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht; andernfalls gibt esfalse
zurück und löst eininvalid
-Ereignis am Element aus. reportValidity()
-
Gibt
true
zurück, wenn der Wert des Elements die Gültigkeitsprüfungen besteht; andernfalls gibt esfalse
zurück, löst eininvalid
-Ereignis am Element aus und meldet (falls das Ereignis nicht abgebrochen wird) das Problem dem Benutzer. select()
-
Wählt den gesamten Inhalt des
<input>
-Elements aus, wenn der Inhalt des Elements auswählbar ist. Für Elemente ohne auswählbaren Textinhalt (wie ein visuelles Farbwähler oder Kalenderdatum-Eingabe) tut diese Methode nichts. setCustomValidity()
-
Setzt eine benutzerdefinierte Nachricht, die angezeigt wird, wenn der Wert des Eingabefelds nicht gültig ist.
setRangeText()
-
Legt den Inhalt des angegebenen Bereichs von Zeichen im Eingabefeld auf eine gegebene Zeichenfolge fest. Ein Parameter
selectMode
ist verfügbar, um zu steuern, wie der vorhandene Inhalt beeinflusst wird. setSelectionRange()
-
Wählt den angegebenen Bereich von Zeichen innerhalb eines textuellen Eingabe-Elements aus. Macht nichts für Eingaben, die nicht als Text-Eingabefelder angezeigt werden.
showPicker()
-
Zeigt den Browser-Picker für das Eingabeelement an, der normalerweise angezeigt wird, wenn das Element ausgewählt wird, aber von einem Button-Drücker oder einem anderen 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 durch die angegebene Anzahl von Einheiten.
CSS
Eingaben, die ersetzbare Elemente sind, haben einige Merkmale, die nicht auf Nicht-Formularelemente anwendbar sind. Es gibt CSS-Selektoren, die spezifisch Formularsteuerungen basierend auf ihren UI-Funktionen anvisieren können, auch bekannt als UI-Pseudoklassen. Das Eingabeelement kann auch nach Typ mit Attributselektoren gezielt werden. Es gibt einige Eigenschaften, die besonders nützlich sind.
UI-Pseudoklassen
Pseudoklasse | Beschreibung |
---|---|
:enabled |
Jedes derzeit aktivierte Element, das aktiviert werden kann (ausgewählt, angeklickt, beschrieben usw.) oder den Fokus akzeptiert und auch einen deaktivierten Zustand hat, in dem es nicht aktiviert oder den Fokus akzeptieren kann. |
:disabled |
Jedes derzeit deaktivierte Element, das einen aktivierten Zustand hat, was bedeutet, dass es ansonsten aktiviert (ausgewählt, angeklickt, beschrieben usw.) oder den Fokus akzeptiert werden könnte, wenn es nicht deaktiviert wäre. |
:read-only |
Nicht durch den Nutzer bearbeitbares Element. |
:read-write |
Vom Nutzer bearbeitbares Element. |
:placeholder-shown |
Element, das derzeit placeholder -Text anzeigt, einschließlich <input> und <textarea> -Elemente mit dem placeholder -Attribut, das noch keinen Wert hat.
|
:default |
Formularelemente, die in einer Gruppe verwandter Elemente standardmäßig sind. Passt für die checkbox und radio Input-Typen, die beim Laden oder Rendern der Seite überprüft wurden. |
:checked |
Passt zu checkbox und radio Input-Typen, die derzeit überprüft werden (und das <option> in einem <select> , das derzeit ausgewählt ist).
|
:indeterminate |
checkbox-Elemente, deren indeterminierte Eigenschaft von JavaScript auf wahr gesetzt wird, radio-Elemente, wenn alle Radiobuttons mit demselben Namenswert im Formular nicht ausgewählt sind und <progress> -Elemente in einem unbestimmten Zustand.
|
:valid |
Formularelemente, die eine Bedingungsvalidierung haben können und derzeit gültig sind. |
:invalid |
Formularelemente, die eine Bedingungsvalidierung haben und derzeit ungültig sind. Passt zu einem Formularelement, dessen Wert nicht zu den durch seine Attribute festgelegten Bedingungen passt, wie required , pattern , step und max .
|
:in-range |
Eine nicht-leere Eingabe, deren aktueller Wert innerhalb der durch die min und max -Attribute und das 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 -Beschränkungen entspricht.
|
:required |
<input> , <select> , oder <textarea> -Element, das das required -Attribut gesetzt hat.
Passt nur zu Elementen, die erforderlich sein können.
Das Attribut auf einem nicht erforderlichen Element sorgt nicht für eine Übereinstimmung.
|
:optional |
<input> , <select> , oder <textarea> -Element, das NICHT das required -Attribut gesetzt hat.
Passt nicht zu Elementen, die nicht erforderlich sein können.
|
:blank |
<input> und <textarea> -Elemente, die derzeit keinen Wert haben.
|
:user-invalid |
Ähnlich wie :invalid , wird jedoch beim Verlassen des Eingabefelds aktiviert. Passt auf ungültige Eingaben, jedoch nur nach der Benutzerinteraktion, z. B. durch Fokussieren auf das Steuerelement, Verlassen des Steuerelements oder Versuch, das Formular mit dem ungültigen Steuerelement abzuschicken.
|
:open |
<input> -Elemente, die einen Auswahldialog für den Nutzer anzeigen, um einen Wert auszuwählen (zum Beispiel <input type="color"> ), aber nur, wenn das Element im offenen Zustand ist, das heißt, wenn der Auswahldialog angezeigt wird.
|
Pseudoklassen Beispiel
Wir können einem Beschriftungselement eines Kontrollkästchens einen Stil geben, basierend darauf, ob das Kontrollkästchen aktiviert ist oder nicht. In diesem Beispiel gestalten wir die color
und font-weight
der <label>
, die direkt nach einem aktivierten Eingabefeld kommt. Wir haben keine Stile angewendet, wenn das input
nicht aktiviert ist.
input:checked + label {
color: red;
font-weight: bold;
}
Attributselektoren
Es ist möglich, verschiedene Arten von Formularsteuerungen basierend auf ihrem type
mit Attributselektoren zu adressieren. CSS-Attributselektoren passen zu Elementen basierend auf entweder nur der Anwesenheit eines Attributs oder dem Wert eines bestimmten Attributs.
/* matches a password input */
input[type="password"] {
}
/* matches a form control whose valid values are limited to a range of values*/
input[min][max] {
}
/* matches a form control with a pattern attribute */
input[pattern] {
}
::placeholder
Standardmäßig ist das Erscheinungsbild des Platzhaltertextes durchsichtig oder hellgrau. Das ::placeholder
Pseudoelement ist der placeholder
-Text der Eingabe. Er kann mit einem begrenzten Satz von CSS-Eigenschaften gestaltet werden.
::placeholder {
color: blue;
}
Nur der Satz von CSS-Eigenschaften, die auf das ::first-line
Pseudoelement angewendet werden können, kann auch in einer Regel mit ::placeholder
im Selektor verwendet werden.
appearance
Die appearance
Eigenschaft ermöglicht das Anzeigen von (fast) jedem Element im plattform-native Stil basierend auf dem Betriebssystemthema sowie das Entfernen von irgendeinem plattform-nativen Styling mit dem Wert none
.
Sie könnten ein <div>
wie einen Radiobutton aussehen lassen mit div {appearance: radio;}
oder einen Radiobutton wie ein Kontrollkästchen mit [type="radio"] {appearance: checkbox;}
, aber tun Sie es nicht.
Das Setzen von appearance: none
entfernt plattformnativen Rahmen, aber nicht die Funktionalität.
caret-color
Eine spezifische Eigenschaft für Texteingabeelemente ist die CSS caret-color
Eigenschaft, mit der Sie die Farbe festlegen können, 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
field-sizing
Die field-sizing
Eigenschaft ermöglicht Ihnen die Kontrolle über das Größenverhalten von Formular-Eingaben (d.h. sie erhalten standardmäßig eine bevorzugte Größe). Diese Eigenschaft ermöglicht es Ihnen, das Standardverhalten zu überschreiben und den Formularsteuerungen zu erlauben, sich in der Größe an ihren Inhalt anzupassen.
Diese Eigenschaft wird normalerweise verwendet, um Formularfelder zu erstellen, die ihren Inhalt einpacken und wachsen, während mehr Text eingegeben wird. Dies funktioniert mit Eingabetypen, die direkte Texteingaben akzeptieren (zum Beispiel text
und url
), Eingabetyp file
und <textarea>
Elemente.
object-position und object-fit
In bestimmten Fällen (normalerweise bei nicht-textuellen Eingaben und spezialisierten Schnittstellen) ist das <input>
Element ein ersetztes Element. Wenn es so ist, können die Position und die Größe des Elements sowie die Positionierung innerhalb seines Rahmens mit den CSS object-position
und object-fit
Eigenschaften angepasst werden.
Styling
Für weitere Informationen zum Hinzufügen von Farbe zu HTML-Elementen 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 zu einem Formularfeld, die immer angebracht sind (abgesehen von allen Layout-Bedenken, die Sie haben). Es ist nie eine schlechte Idee, ein <label>
zu verwenden, um zu erklären, was in ein <input>
oder <textarea>
eingegeben werden sollte.
Zugehörige Labels
Die semantische Zusammenführung von <input>
und <label>
-Elementen ist nützlich für unterstützende Technologien wie Screenreader. Durch die Verknüpfung mit dem for
Attribut des <label>
, binden Sie das Label an die Eingabe in einer Weise, die es Screenreadern ermöglicht, Eingaben den Nutzern präziser zu beschreiben.
Es genügt nicht, einfachen Text neben dem <input>
-Element zu haben. Vielmehr erfordern Benutzerfreundlichkeit und Zugänglichkeit die Einbeziehung eines ausdrücklichen oder impliziten <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 gibt keine Beziehung zwischen der Eingabeaufforderung und dem <input>
-Element.
Zusätzlich zu einem zugänglichen Namen bietet das Label eine größere "Treffer"-Fläche für Maus- und Touchscreen-Nutzer. Durch die Verknüpfung eines <label>
mit einem <input>
wird durch Klicken auf eines von beiden das <input>
fokussiert. Wird einfacher Text verwendet, um die Eingabe zu "beschriften", passiert das nicht. Das Teilen der Aktivierungsfläche für die Eingabeaufforderung ist für Menschen mit motorischen Problemen hilfreich.
Als Webentwickler sollten wir niemals davon ausgehen, dass Menschen all das wissen, was wir wissen. Die Vielfalt der Menschen, die das Web nutzen – und dadurch Ihre Website – garantiert praktisch, dass einige Ihrer Besucher einige Variationen in Denkprozessen und/oder Umständen haben, die sie dazu bringen, Ihre Formulare sehr unterschiedlich von Ihnen zu interpretieren, ohne klare und richtig präsentierte Labels.
Platzhalter sind nicht zugänglich
Das placeholder
-Attribut ermöglicht Ihnen die Angabe von Text, der im Inhaltsbereich des <input>
-Elements angezeigt wird, wenn es leer ist. Der Platzhalter sollte niemals erforderlich sein, um Ihre Formulare zu verstehen. Es ist kein Label und sollte nicht als Ersatz verwendet werden, da es kein Ersatz ist. Der Platzhalter dient dazu, einen Hinweis darauf zu geben, wie ein eingegebener Wert aussehen sollte, nicht als Erklärung oder Aufforderung.
Nicht nur ist der Platzhalter für Screenreader nicht zugänglich, sondern sobald der Nutzer irgendeinen Text in das Formularelement eingibt oder wenn das Formularelement bereits einen Wert hat, verschwindet der Platzhalter. Browser mit automatischen Seitenübersetzungsfunktionen überspringen möglicherweise Attribute beim Übersetzen, was bedeutet, dass der placeholder
möglicherweise nicht übersetzt wird.
Hinweis:
Verwenden Sie nicht das placeholder
-Attribut, wenn Sie es vermeiden können. 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 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, um Eingaben basierend auf den :valid
oder :invalid
UI-Zuständen zu stilisieren, basierend auf dem aktuellen Zustand jeder Eingabe, wie im Abschnitt UI-Pseudoklassen oben erwähnt, bietet der Browser die clientseitige Validierung bei einem (versuchten) Formular-Submit. Beim Absenden des Formulars, wenn es ein Formularelement gibt, das die Bedingungsvalidierung nicht besteht, werden unterstützende Browser eine Fehlermeldung auf dem ersten ungültigen Formularelement anzeigen; entweder eine Standardmeldung basierend auf dem Fehlertyp oder eine von Ihnen festgelegte Meldung.
Einige Eingabetypen und andere Attribute legen Limits fest, welche Werte für eine bestimmte Eingabe gültig sind. Zum Beispiel <input type="number" min="2" max="10" step="2">
bedeutet, dass nur die Nummer 2, 4, 6, 8 oder 10 gültig sind. Verschiedene Fehler können auftreten, einschließlich eines rangeUnderflow
-Fehlers, wenn der Wert weniger als 2 beträgt, rangeOverflow
, wenn er größer als 10 ist, stepMismatch
, wenn der Wert zwischen 2 und 10 liegt, jedoch keine gerade Ganzzahl ist (entspricht nicht den Anforderungen des step
-Attributs), oder typeMismatch
, wenn der Wert keine Zahl ist.
Für die Eingabetypen, deren Wertebereich periodisch ist (d.h. beim höchsten möglichen Wert die Werte wieder von vorne beginnen, anstatt zu enden), ist es möglich, dass die Werte der max
und min
Eigenschaften vertauscht sind, was darauf hinweist, dass die Spanne der erlaubten Werte bei min
beginnt, zum niedrigsten möglichen Wert zurückkehrt und dann fortfährt, bis max
erreicht ist. Dies ist besonders nützlich für Daten und Zeiten, wie zur Erlaubnis eines Bereichs von 20 Uhr bis 8 Uhr:
<input type="time" min="20:00" max="08:00" name="overnight" />
Spezifische Attribute und deren Werte können zu einem bestimmten Fehler im ValidityState
führen:
Attribut | Relevante Eigenschaft | Beschreibung |
---|---|---|
max |
[`validityState.rangeOverflow`](/de/docs/Web/API/ValidityState/rangeOverflow) |
Tritt auf, wenn der Wert größer ist als der maximale Wert, der durch das max -Attribut definiert ist.
|
maxlength |
[`validityState.tooLong`](/de/docs/Web/API/ValidityState/tooLong) |
Tritt auf, wenn die Anzahl der Zeichen größer ist als die durch die maxlength -Eigenschaft zulässige Anzahl.
|
min |
[`validityState.rangeUnderflow`](/de/docs/Web/API/ValidityState/rangeUnderflow) |
Tritt auf, wenn der Wert kleiner ist als der minimale Wert, der durch das min -Attribut definiert ist.
|
minlength |
[`validityState.tooShort`](/de/docs/Web/API/ValidityState/tooShort) |
Tritt auf, wenn die Anzahl der Zeichen kleiner ist als die durch die minlength -Eigenschaft erforderliche Anzahl.
|
pattern |
[`validityState.patternMismatch`](/de/docs/Web/API/ValidityState/patternMismatch) |
Tritt auf, wenn ein pattern-Attribut mit einem gültigen regulären Ausdruck enthalten ist und der value nicht übereinstimmt.
|
required |
[`validityState.valueMissing`](/de/docs/Web/API/ValidityState/valueMissing) |
Tritt auf, wenn das required -Attribut vorhanden ist, der Wert jedoch null ist, oder ein Radio- oder Kontrollkästchen nicht ausgewählt ist.
|
step |
[`validityState.stepMismatch`](/de/docs/Web/API/ValidityState/stepMismatch) |
Der Wert stimmt nicht mit dem Stufenschritt überein. Der Standardschritt ist 1 , also sind nur Ganzzahlen gültig, wenn type="number" ist und der Schritt nicht enthalten ist. step="any" wird diesen Fehler niemals auslösen.
|
type |
[`validityState.typeMismatch`](/de/docs/Web/API/ValidityState/typeMismatch) |
Tritt auf, wenn der Wert nicht vom richtigen Typ ist, z.B. eine E-Mail kein @ enthält oder eine URL kein Protokoll enthält.
|
Wenn ein Formularelement nicht das required
-Attribut hat, wird kein Wert, oder eine leere Zeichenfolge nicht als ungültig betrachtet. Selbst wenn die oben genannten Attribute vorhanden sind, mit Ausnahme von required
, führt eine leere Zeichenfolge nicht zu einem Fehler.
Wir können festlegen, welche Werte wir akzeptieren, und unterstützende Browser werden diese Formularwerte nativ validieren und den Nutzer bei einem Fehler beim Absenden warnen.
Zusätzlich zu den im obigen Abschnitt beschriebenen Fehlern enthält die validityState
-Schnittstelle die booleschen schreibgeschützten Eigenschaften badInput
, valid
und customError
. Das Gültigkeitsobjekt enthält:
validityState.valueMissing
validityState.typeMismatch
validityState.patternMismatch
validityState.tooLong
validityState.tooShort
validityState.rangeUnderflow
validityState.rangeOverflow
validityState.stepMismatch
validityState.badInput
validityState.valid
validityState.customError
Für jede dieser Booleschen Eigenschaften zeigt ein Wert von true
an, dass der angegebene Grund, warum die Validierung möglicherweise fehlgeschlagen ist, zutrifft, mit Ausnahme der Eigenschaft valid
, die true
ist, wenn der Wert des Elements alle Einschränkungen einhält.
Tritt ein Fehler auf, werden unterstützende Browser den Nutzer sowohl warnen als auch das Absenden des Formulars verhindern. Ein Wort der Vorsicht: Wenn ein benutzerdefinierter Fehler auf einen "wahr" Wert gesetzt ist (etwas anderes als die leere Zeichenfolge oder null
), wird das Formular nicht abgesendet. Gibt es keine benutzerdefinierte Fehlermeldung und keines der anderen Eigenschaften true ist, wird valid
true sein und das Formular kann abgesendet werden.
function validate(input) {
let validityState_object = input.validity;
if (validityState_object.valueMissing) {
input.setCustomValidity("A value is required");
} else if (validityState_object.rangeUnderflow) {
input.setCustomValidity("Your value is too low");
} else if (validityState_object.rangeOverflow) {
input.setCustomValidity("Your value is too high");
} else {
input.setCustomValidity("");
}
}
Die letzte Zeile, die die benutzerdefinierte Gültigkeitsmeldung auf eine leere Zeichenfolge setzt, ist entscheidend. Macht der Nutzer einen Fehler und ist die Gültigkeit gesetzt, wird das Absenden ausgeschlossen, selbst wenn alle Werte gültig sind, bis die Nachricht null
ist.
Beispiel für benutzerdefinierte Validierungsfehler
Möchten Sie eine benutzerdefinierte Fehlermeldung anzeigen, wenn ein Feld die Validierung nicht besteht, müssen Sie dieConstraint Validation API verwenden, die auf <input>
(und verwandten) Elementen verfügbar ist. Nehmen wir folgendes Formular:
<form>
<label for="name">Enter username (upper and lowercase letters): </label>
<input type="text" name="name" id="name" required pattern="[A-Za-z]+" />
<button>Submit</button>
</form>
Die grundlegenden HTML-Formularprüfungsfunktionen werden dazu führen, dass dies eine Standardfehlermeldung erzeugen wird, wenn Sie versuchen, das Formular mit entweder keinem gültigen eingefüllten Wert oder einem Wert, der nicht dem pattern
entspricht, abzusenden.
Wenn Sie stattdessen benutzerdefinierte Fehlermeldungen anzeigen möchten, könnten Sie JavaScript wie folgend 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 folgendermaßen wiedergegeben:
Kurz gesagt:
- Wir überprüfen den gültigen Zustand des Eingabeelements jedes Mal, wenn sich sein Wert ändert, indem wir über die
input
Ereignis-Handler die MethodecheckValidity()
ausführen. - Ist der Wert ungültig, wird ein
invalid
Ereignis ausgelöst und dieinvalid
-Ereignis-Handler-Funktion ausgeführt. Innerhalb dieser Funktion bestimmen wir, ob der Wert ungültig ist, weil er leer ist oder weil er nicht dem Muster entspricht, mit einemif ()
-Block und setzen eine benutzerdefinierte Fehlermeldung. - Als Ergebnis wird eine der benutzerdefinierten Fehlermeldungen angezeigt, wenn der Eingabewert ungültig ist, wenn die Schaltfläche "Absenden" gedrückt wird.
- Ist es gültig, wird es wie erwartet abgesendet. Dafür muss die benutzerdefinierte Validität aufgehoben werden, indem
setCustomValidity()
mit einem leeren Zeichenfolgenwert aufgerufen wird. Deshalb tun wir dies jedes Mal, wenn das Ereignisinput
aufgerufen wird. Tun Sie das nicht und eine benutzerdefinierte Gültigkeit wurde zuvor gesetzt, wird die Eingabe als ungültig registriert, selbst wenn sie derzeit einen validen Wert bei der Einreichung enthält.
Hinweis: Validieren Sie stets alle Eingabezwänge sowohl auf Client- als auch auf Serverseite. Die Zwangsvalidierung entfernt nicht die Notwendigkeit der Validierung auf der Serverseite. Ungültige Werte können weiterhin von älteren Browsern oder durch bösartige Akteure gesendet werden.
Hinweis:
Firefox unterstützte über viele Versionen ein proprietäres Fehlerattribut – x-moz-errormessage
–, das es erlaubte, benutzerdefinierte Fehlermeldungen auf ähnliche Weise zu setzen. Dies wurde mit Version 66 entfernt (siehe Firefox Bug 1513890).
Lokalisierung
Die erlaubten Eingaben für bestimmte <input>
Typen hängen von der lokalen Region ab. In einigen Regionen ist 1.000,00 eine gültige Zahl, während in anderen Regionen die gültige Eingabemöglichkeit für diese Zahl 1.000,00 ist.
Firefox verwendet folgende Heuristiken, um die Region zu bestimmen, um die Eingabe des Nutzers (zumindest für type="number"
) zu validieren:
- Versuchen Sie die Sprache, die durch ein
lang
/xml:lang
-Attribut am Element oder an einem seiner Elternteile angegeben ist. - Versuchen Sie die Sprache, die durch jeglichen
Content-Language
HTTP-Header angegeben ist. Oder, - Verwenden Sie, falls keine angegeben ist, die Browser-Region.
Barrierefreiheit
Labels
Wenn Eingaben enthalten sind, ist es eine Anforderung zur Barrierefreiheit, Labels hinzuzufügen. Dies ist notwendig, damit Menschen, die unterstützende Technologien verwenden, erkennen können, wofür die Eingabe ist. Auch durch Klicken oder Berühren eines Labels erhält das damit verbundene Formularelement den Fokus. Dies verbessert die Barrierefreiheit und Benutzerfreundlichkeit für Sehbehinderte, erhöht die Fläche, die ein Benutzer klicken oder berühren kann, um das Formularelement zu aktivieren. Dies ist besonders nützlich (und sogar notwendig) für Radiobuttons und Kontrollkästchen, die klein sind. Für weitere Informationen über Labels im Allgemeinen siehe Labels.
Das folgende ist ein Beispiel dafür, wie das <label>
mit einem <input>
-Element in obigem Stil verknüpft wird. Sie müssen dem <input>
ein id
-Attribut geben. Das <label>
benötigt dann ein for
-Attribut, dessen Wert derselbe wie die id
der Eingabe ist.
<label for="peas">Do you like peas?</label>
<input type="checkbox" name="peas" id="peas" />
Größe
Interaktive Elemente wie Formulareingaben sollten eine Fläche bereitstellen, die groß genug ist, um sie einfach zu aktivieren. Dies hilft einer Vielzahl von Menschen, einschließlich Menschen mit motorischen Problemen und Menschen, die ungenaue Eingabeformen verwenden, wie einen Stift oder Finger. Eine minimale interaktive Größe von 44×44 CSS-Pixeln wird empfohlen.
Technische Zusammenfassung
Inhaltskategorien |
Flussinhalt, gelistet, einreichbar, zurücksetzbares, formularassoziiertes Element,
Phraseinhalt. Wenn der type nicht hidden ist, dann etikettierbares, palpierbarer Inhalt.
|
---|---|
Erlaubter Inhalt | Keiner; es ist ein leeres Element. |
Tag-Auslassung | Ein Start-Tag muss vorhanden sein und ein End-Tag darf nicht vorhanden sein. |
Erlaubte Eltern | Jedes Element, das Phraseinhalt akzeptiert. |
Implizite ARIA Rollenzuordnung |
|
Erlaubte ARIA-Rollen |
|
DOM-Schnittstelle | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
Spezifikationen
Specification |
---|
HTML # the-input-element |
Browser-Kompatibilität
Siehe auch
- Bedingungsvalidierung von Formularen
- Ihr erstes HTML-Formular
- Anleitung zur Struktur eines HTML-Formulars
- Die nativen Formular-Widgets
- Formulardaten senden
- Validierung von Formulardaten
- Anleitung zum Erstellen von benutzerdefinierten Formular-Widgets
- HTML-Formulare in veralteten Browsern
- Styling von HTML-Formularen
- Erweitertes Styling für HTML-Formulare
- Erstellen von vertikalen Formularsteuerungen