<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 webbasierten Formulare zu erstellen, um Daten vom Benutzer entgegenzunehmen; je nach Gerät und User Agent stehen verschiedene Arten von Eingabedaten und Steuerungs-Widgets zur Verfügung. Das <input>
-Element ist eines der mächtigsten und komplexesten in HTML, da es so viele Kombinationen aus 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, variiert erheblich abhängig vom Wert seines type
-Attributs, weshalb die verschiedenen Typen auf separaten Referenzseiten behandelt werden. Wenn dieses Attribut nicht angegeben ist, wird der Standardtyp text
verwendet.
Die verfügbaren Typen sind wie folgt:
Typ | Beschreibung | Grundlegende Beispiele |
---|---|---|
button |
Eine Schaltfläche ohne Standardverhalten, die den Wert des value -Attributs anzeigt, standardmäßig leer.
|
|
checkbox | Eine Kontrollkästchen, das es ermöglicht, einzelne Werte zu selektieren/deselektieren. |
|
color | Ein Steuerelement zur Farbauswahl, das in unterstützenden Browsern einen Farbwähler öffnen kann. |
|
date | Ein Steuerelement zur Eingabe eines Datums (Jahr, Monat und Tag, ohne Zeit). Öffnet einen Datumsauswähler oder numerische Räder für Jahr, Monat und Tag in unterstützenden Browsern. |
|
datetime-local | Ein Steuerelement zur Eingabe von Datum und Uhrzeit, ohne Zeitzone. Öffnet einen Datumsauswähler oder numerische Räder für Datums- und Zeitkomponenten in unterstützenden Browsern. |
|
Ein Feld zum Bearbeiten einer E-Mail-Adresse. Sieht aus wie eine
text -Eingabe, hat aber Validierungsparameter und eine relevante Tastatur in unterstützenden Browsern und Geräten mit dynamischen Tastaturen.
|
|
|
file |
Ein Steuerelement, mit dem der Benutzer eine Datei auswählen kann. Verwenden Sie das accept -Attribut, um die Typen von Dateien zu definieren, die das Steuerelement auswählen kann.
|
|
hidden | Ein nicht angezeigtes Steuerelement, dessen Wert jedoch an den Server übermittelt wird. Es gibt ein Beispiel in der nächsten Spalte, aber es ist versteckt! | |
image |
Eine grafische submit -Schaltfläche. Zeigt ein Bild an, das durch das src -Attribut definiert ist.
Das alt -Attribut wird angezeigt, wenn das Bild src fehlt.
|
|
month | 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äßig eine Validierung hinzu. Zeigt eine numerische Tastatur auf einigen Geräten mit dynamischen Tastaturen an. |
|
password | Ein einzeiliges Textfeld, dessen Wert verborgen wird. Warnt den Benutzer, wenn die Website nicht sicher ist. |
|
radio |
Eine Optionsschaltfläche, die es ermöglicht, einen einzelnen Wert aus mehreren Auswahlmöglichkeiten mit demselben name -Wert 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 mittleren Wert gesetzt ist. Wird zusammen mit min und max verwendet, um den Bereich akzeptabler Werte zu definieren.
|
|
reset | Eine Schaltfläche, die den Inhalt des Formulars auf die Standardwerte zurücksetzt. Nicht empfohlen. |
|
search | Ein einzeiliges Textfeld zur Eingabe von Suchtexten. 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 ein Suchsymbol anstelle der Eingabetaste auf einigen Geräten mit dynamischen Tastaturen an. |
|
submit | Eine Schaltfläche, die das Formular absendet. |
|
tel | Ein Steuerelement zur Eingabe einer Telefonnummer. Zeigt eine Telefonwähltastatur 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 eine text -Eingabe, hat aber Validierungsparameter und eine relevante Tastatur in unterstützenden Browsern und Geräten mit dynamischen Tastaturen.
|
|
week | Ein Steuerelement zur Eingabe eines Datums, das aus einer Wochennummer und einer Jahrzahl besteht, ohne Zeitzone. |
|
Veraltete Werte | ||
datetime
Veraltet
|
Ein Steuerelement zur Eingabe eines Datums und einer Uhrzeit (Stunde, Minute, Sekunde und Bruchteile einer Sekunde) basierend auf der UTC-Zeitzone. |
|
Attribute
Das <input>
-Element ist so leistungsfähig aufgrund seiner Attribute; das type
-Attribut, das oben mit Beispielen beschrieben wurde, ist das wichtigste. Da jedes <input>
-Element, unabhängig vom Typ, auf der HTMLInputElement
-Schnittstelle basiert, teilen sie sich technisch genau den gleichen Satz von Attributen. In der Realität haben jedoch die meisten Attribute nur auf eine bestimmte Untermenge von Eingabetypen Auswirkungen. Darüber hinaus hängt es vom Eingabetyp ab, wie einige Attribute eine Eingabe beeinflussen und unterschiedliche Eingabetypen unterschiedlich beeinflussen.
In diesem Abschnitt finden Sie eine Tabelle mit allen Attributen und einer kurzen Beschreibung. Diese Tabelle wird gefolgt von einer Liste, die jedes Attribut ausführlicher beschreibt, zusammen mit den Eingabetypen, mit denen sie verbunden sind. Attribute, die für die meisten oder alle Eingabetypen gemeinsam sind, werden unten 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, werden stattdessen auf den Seiten dieser Typen dokumentiert.
Attribute für das <input>
-Element umfassen die globalen HTML-Attribute und zusätzlich:
Attribut | Typ(en) | Beschreibung |
---|---|---|
accept |
file |
Hinweis auf den erwarteten Dateityp in Datei-Upload-Steuerelementen |
alt |
image |
Alt-Attribut für den Bildtyp. Erforderlich für Zugänglichkeit |
autocapitalize |
alle außer url , email und password |
Steuert die automatische Großschreibung im eingegebenen Text. |
autocomplete |
alle außer checkbox , radio und Schaltflächen |
Hinweis für die Formular-Autovervollständigungsfunktion |
capture |
file |
Medieneingabemethode in Datei-Upload-Steuerelementen |
checked |
checkbox , radio |
Ob der Befehl oder die Steuerung aktiviert ist |
dirname |
hidden , text , search , url , tel , email |
Name des Formularfeldes zur Angabe der Richtung des Elements bei Formularübermittlung |
disabled |
alle | Ob das Formularfeld deaktiviert ist |
form |
alle | Verknüpft das Steuerelement mit einem Formularelement |
formaction |
image , submit |
URL zur Verwendung bei der Formularübermittlung |
formenctype |
image , submit |
Formulardatensatz-Codierungstyp zur Verwendung bei der Formularübermittlung |
formmethod |
image , submit |
HTTP-Methode zur Verwendung bei der Formularübermittlung |
formnovalidate |
image , submit |
Formularfeldvalidierung für Formularübermittlung umgehen |
formtarget |
image , submit |
Browsing-Kontext für die Formularübermittlung |
height |
image |
Entspricht dem Höhenattribut für <img> ; vertikale Dimension |
list |
alle außer hidden , password , checkbox , radio und Schaltflächen |
Wert des id-Attributs der <datalist> 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 mehrere Werte zulässig sind |
name |
alle | Name des Formularfelds. Wird als Teil eines Name-Werte-Paares mit dem Formular übermittelt |
pattern |
text , search , url , tel , email , password |
Das Muster, das value entsprechen muss, um gültig zu sein |
placeholder |
text , search , url , tel , email , password , number |
Text, der im Formularfeld erscheint, wenn kein Wert festgelegt ist |
popovertarget |
button |
Bestimmt ein <input type="button"> als Steuerung 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 editierbar |
required |
alle außer hidden , range , color und Schaltflächen |
Boolean. Ein Wert ist erforderlich oder muss ausgewählt sein, damit das Formular gesendet werden kann |
size |
text , search , url , tel , email , password |
Größe des Steuerelements |
src |
image |
Entspricht dem src -Attribut für <img> ; Adresse der Bildressource |
step |
date , month , week , time , datetime-local , number , range |
Inkrementelle Werte, die zulässig sind |
type |
alle | Art des Formularsteuerungselements |
value |
alle außer image |
Der Wert des Steuerungselements. Wenn im HTML angegeben, entspricht dies dem initialen Wert |
width |
image |
Entspricht dem width -Attribut für <img> |
Einige zusätzliche nicht standardisierte Attribute sind nach den Beschreibungen der Standardattribute aufgeführt.
Einzelne Attribute
accept
-
Gültig nur für den
file
-Eingabetyp, dasaccept
-Attribut definiert, welche Dateitypen in einemfile
-Upload-Steuerelement auswählbar sind. Siehe den file-Eingabetyp. alt
-
Gültig nur für den
image
-Button, dasalt
-Attribut bietet Alternativtext 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, wenn ja, auf welche Weise. Weitere Informationen finden Sie auf der globalen Attributseite
autocapitalize
. autocomplete
-
(Kein Boolean-Attribut!) Das
autocomplete
-Attribut nimmt als seinen Wert eine durch Leerzeichen getrennte Zeichenfolge an, die beschreibt, welche, wenn überhaupt, Art von Autovervollständigungsfunktionalität das Eingabefeld bereitstellen soll. Eine typische Implementierung von Autovervollständigung erinnert sich an vorherige Werte, die im selben Eingabefeld eingegeben wurden, aber komplexere Formen der Autovervollständigung können existieren. Zum Beispiel könnte ein Browser mit der Kontakliste eines Geräts integriert werden, um E-Mail-Adressen in einem E-Mail-Eingabefeld automatisch zu vervollständigen. Sieheautocomplete
für zulässige Werte.Das
autocomplete
-Attribut ist gültig aufhidden
,text
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
,range
,color
undpassword
. 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 eine der Schaltflächentypen gültig.Siehe das
autocomplete
-Attribut für zusätzliche Informationen, einschließlich Informationen zur Passwortsicherheit und wieautocomplete
etwas anders fürhidden
ist als für andere Eingabetypen. autofocus
-
Ein Boolean-Attribut, das, wenn vorhanden, angibt, dass die Eingabe automatisch den Fokus erhalten soll, wenn die Seite fertig geladen ist (oder wenn das
<dialog>
mit dem 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 mehreren Elementen zugewiesen wird, erhält das erste mit diesem Attribut den Fokus.Das
autofocus
-Attribut kann nicht aufhidden
-Eingaben verwendet werden, da versteckte Eingaben nicht fokussierbar sind.Warnung: Ein Formularsteuerungselement automatisch zu fokussieren, kann sehbehinderte Menschen, die Bildschirmlesetechnologie verwenden, und Menschen mit kognitiven Beeinträchtigungen verwirren. Wenn
autofocus
zugewiesen wird, "beamen" Bildschirmleser ihren Benutzer ohne Vorwarnung zur Formularsteuerung.Verwenden Sie sorgfältige Überlegungen für die Barrierefreiheit, wenn Sie das
autofocus
-Attribut anwenden. Das automatische Fokussieren auf ein Steuerelement kann bewirken, dass die Seite beim Laden scrollt. Der Fokus kann auch dafür sorgen, dass auf einigen Touch-Geräten dynamische Tastaturen angezeigt werden. Während ein Bildschirmleser die Beschriftung der Fokus-erhaltenden Formularsteuerung ankündigt, wird der Bildschirmleser nichts vor der Beschriftung ankündigen, und der sehende Benutzer auf einem kleinen Gerät wird ebenso den durch den vorhergehenden Inhalt erzeugten Kontext 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 zur Upload mitfile
-Upload-Steuerung in unterstützenden Szenarien zu erfassen. Siehe den file-Eingabetyp. checked
-
Gültig für beide
radio
- undcheckbox
-Typen,checked
ist ein Boolean-Attribut. Wenn es auf einenradio
-Typ angewendet wird, gibt es an, dass die Radiobox das derzeit ausgewählte im Kreis von gleichnamigen Radio-Buttons ist. Wenn es auf einencheckbox
-Typ angewendet wird, gibt es an, dass die Checkbox standardmäßig (beim Laden der Seite) ausgewählt ist. Es zeigt nicht an, ob diese Checkbox derzeit ausgewählt ist: Wenn der Zustand der Checkbox geändert wird, spiegelt dieses Inhaltsattribut die Änderung nicht wider. (Nur dasHTMLInputElement
'schecked
IDL-Attribut wird aktualisiert.)Hinweis: Im Gegensatz zu anderen Eingabesteuerungselementen wird der Wert von Checkboxes und Radio-Buttons nur in die gesendeten Daten aufgenommen, wenn sie gerade
checked
sind. Wenn sie es sind, werden der Name und die Wert(e) der ausgewählten Steuerung gesendet.Zum Beispiel, wenn eine Checkbox, deren
name
fruit
ist,value
voncherry
hat und die Checkbox aktiviert ist, werden die Formulardatenfruit=cherry
enthalten. Wenn die Checkbox nicht aktiv ist, wird sie überhaupt nicht in den Formulardaten aufgeführt. Der Standardwert von Checkboxes und Radio-Buttons iston
. dirname
-
Gültig für
hidden
,text
,search
,url
,tel
undemail
-Eingabetypen, ermöglicht dasdirname
-Attribut die Übermittlung der Richtung des Elements. Wenn es eingeschlossen ist, wird das Formularfeld mit zwei Name-Wert-Paaren gesendet: das erste ist dername
undvalue
, und das zweite ist der Wert desdirname
-Attributs als Name, mit einem Wert vonltr
oderrtl
, wie vom Browser eingestellt.html<form action="page.html" method="post"> <label> Fruit: <input type="text" name="fruit" dirname="fruit-dir" value="cherry" /> </label> <input type="submit" /> </form> <!-- page.html?fruit=cherry&fruit-dir=ltr -->
Wenn das oben stehende Formular gesendet wird, sorgt die Eingabe dafür, dass sowohl das
name
/value
-Paarfruit=cherry
als auch dasdirname
/ Richtungs-Paarfruit-dir=ltr
gesendet wird. Weitere Informationen finden Sie imdirname
-Attribut. disabled
-
Ein Boolean-Attribut, das, wenn vorhanden, angibt, dass der Benutzer nicht mit der Eingabe interagieren können sollte. Deaktivierte Eingaben werden normalerweise mit einer blasseren Farbe oder unter Verwendung einer anderen Form der Anzeige, dass das Feld nicht verfügbar ist, angezeigt.
Insbesondere erhalten deaktivierte Eingaben nicht das
click
-Ereignis, und deaktivierte Eingaben werden nicht mit dem Formular gesendet.Hinweis: Obwohl nicht durch die Spezifikation erforderlich, wird Firefox standardmäßig den dynamischen deaktivierten Zustand eines
<input>
über Seitenladungen hinweg beibehalten. 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). Dieses Attribut muss, wenn vorhanden, mit derid
eines<form>
-Elements im selben Dokument übereinstimmen. Wenn dieses Attribut nicht angegeben ist, wird das<input>
-Element mit dem nächsten enthaltenden Formular verknüpft, wenn vorhanden.Das
form
-Attribut erlaubt es Ihnen, eine Eingabe überall im Dokument zu platzieren, aber sie bei einem Formular anderswo im Dokument einzuschließen.Hinweis: Eine Eingabe kann nur mit einem Formular verknüpft sein.
formaction
-
Nur für die
image
- undsubmit
-Eingabetypen gültig. Weitere Informationen finden Sie im submit-Eingabetyp. formenctype
-
Nur für die
image
- undsubmit
-Eingabetypen gültig. Weitere Informationen finden Sie im submit-Eingabetyp. formmethod
-
Nur für die
image
- undsubmit
-Eingabetypen gültig. Weitere Informationen finden Sie im submit-Eingabetyp. formnovalidate
-
Nur für die
image
- undsubmit
-Eingabetypen gültig. Weitere Informationen finden Sie im submit-Eingabetyp. formtarget
-
Nur für die
image
- undsubmit
-Eingabetypen gültig. Weitere Informationen finden Sie im submit-Eingabetyp. height
-
Nur für die
image
-Eingabeschaltfläche gültig, dieheight
ist die Höhe der Bilddatei, die angezeigt wird, um die grafische Absenden-Schaltfläche darzustellen. Siehe den image-Eingabetyp. id
-
Globales Attribut, das für alle Elemente gültig ist, einschließlich aller Eingabetypen. Es definiert einen eindeutigen Identifikator (ID), der im gesamten Dokument eindeutig sein muss. Sein Zweck ist es, das Element beim Verlinken zu identifizieren. Der Wert wird als Wert des
for
-Attributs der<label>
-Verbindung verwendet, um das Label mit der Formularsteuerung zu verknüpfen. Siehe<label>
. inputmode
-
Globaler Wert, der für alle Elemente gültig ist, er bietet einen Hinweis an Browser, welche Art von virtueller Tastaturkonfiguration bei der Bearbeitung dieses Elements oder seines Inhalts zu verwenden ist. Werte umfassen
none
,text
,tel
,url
,email
,numeric
,decimal
undsearch
. list
-
Der Wert, der dem
list
-Attribut zugewiesen wird, sollte derid
eines<datalist>
-Elements im selben Dokument sein. Das<datalist>
bietet eine Liste mit vordefinierten Werten, um dem Benutzer für diese Eingabe vorzuschlagen. Alle Werte in der Liste, die mit demtype
nicht kompatibel sind, werden in den vorgeschlagenen Optionen nicht aufgenommen. 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 für
text
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
,range
undcolor
.Gemäß den Spezifikationen wird das
list
-Attribut vomhidden
,password
,checkbox
,radio
,file
oder einer der Schaltflächentypen nicht unterstützt.Abhängig vom Browser kann der Benutzer eine benutzerdefinierte Farbpalette vorgeschlagen bekommen, Markierungen entlang eines Bereichs oder sogar einen Eingabewert, der sich wie ein
<select>
öffnet, jedoch nicht gelistete Werte zulässt. Prüfen Sie die Browser-Kompatibilitätstabelle für die anderen Eingabetypen.Siehe das
<datalist>
-Element. max
-
Gültig für
date
,month
,week
,time
,datetime-local
,number
undrange
, definiert es den größten Wert im Bereich der zulässigen Werte. Wenn der eingefügtevalue
den überschreitet, misslingt das Element die Einschränkungsvalidierung. Wenn der Wert desmax
-Attributs keine Zahl ist, hat das Element keinen Maximalwert.Es gibt einen Sonderfall: wenn der Datentyp periodisch ist (wie etwa für Daten oder Zeiten), kann der Wert von
max
niedriger sein als der Wert vonmin
, was darauf hinweist, dass der Bereich sich umwickeln kann; zum Beispiel erlaubt dies das Festlegen eines Zeitbereichs von 22 Uhr bis 4 Uhr. maxlength
-
Gültig für
text
,search
,url
,tel
,email
undpassword
, definiert es die maximale Stringlänge (gemessen in UTF-16-Codeeinheiten), die der Benutzer in das Feld eingeben kann. Dies muss ein Ganzzahlenwert von 0 oder höher sein. Wenn keinmaxlength
angegeben ist oder ein ungültiger Wert angegeben wird, hat das Feld keine maximale Länge. Dieser Wert muss auch größer oder gleich dem Wert vonminlength
sein.Die Eingabe misslingt die Einschränkungsvalidierung, wenn die Länge des in das Feld eingegebenen Textes länger ist als
maxlength
UTF-16-Codeeinheiten. Standardmäßig verhindern Browser, dass Benutzer mehr Zeichen eingeben, als durch dasmaxlength
-Attribut erlaubt sind. Einschränkungsvalidierung wird nur angewendet, wenn der Wert vom Benutzer geändert wird. Siehe Client-seitige Validierung für mehr Informationen. min
-
Gültig für
date
,month
,week
,time
,datetime-local
,number
undrange
, definiert es den kleinsten zulässigen Wert im Bereich der zulässigen Werte. Wenn dervalue
, der in das Element eingegeben wird, geringer ist als dies, misslingt das Element die Einschränkungsvalidierung. Wenn der Wert desmin
-Attributs keine Zahl ist, hat das Element keinen Minimalwert.Dieser Wert muss kleiner oder gleich dem Wert des
max
-Attributs sein. Wenn dasmin
-Attribut vorhanden ist, 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 der durch dasmin
-Attribut erlaubte Minimalwert, verhindert die Einschränkungsvalidierung die Formulareinreichung. Siehe Client-seitige Validierung für mehr Informationen.Es gibt einen Sonderfall: wenn der Datentyp periodisch ist (wie etwa für Daten oder Zeiten), kann der Wert von
max
niedriger sein als der Wert vonmin
, was darauf hinweist, dass der Bereich sich umwickeln kann; zum Beispiel erlaubt dies das Festlegen eines Zeitbereichs von 22 Uhr bis 4 Uhr. minlength
-
Gültig für
text
,search
,url
,tel
,email
undpassword
, definiert es die minimale Stringlänge (gemessen in UTF-16-Codeeinheiten), die der Benutzer in das Eingabefeld eingeben kann. Dies muss ein nicht-negativer Ganzzahlenwert sein, der kleiner oder gleich dem durchmaxlength
festgelegten Wert ist. Wenn keinminlength
angegeben oder ein ungültiger Wert angegeben wird, hat die Eingabe keine Mindestlänge.Die Eingabe misslingt die Einschränkungsvalidierung, wenn die Länge des in das Feld eingegebenen Textes kürzer als
minlength
UTF-16-Codeeinheiten ist, wodurch die Formulareinreichung verhindert wird. Einschränkungsvalidierung wird nur angewendet, wenn der Wert vom Benutzer geändert wird. Siehe Client-seitige Validierung für mehr Informationen. multiple
-
Wenn das
multiple
-Boolean-Attribut gesetzt ist, bedeutet dies, dass der Benutzer kommaseparierte E-Mail-Adressen im E-Mail-Widget eingeben kann oder mehr als eine Datei mit derfile
-Eingabe auswählen kann. Siehe den email und den file-Eingabetyp. name
-
Ein String, der einen Namen für das Eingabesteuerelement angibt. Dieser Name wird zusammen mit dem Wert des Steuerungselements gesendet, wenn das Formulardaten gesendet werden.
Betrachten Sie
name
als erforderliches Attribut (auch wenn es nicht ist). Wenn eine Eingabe keinname
angegeben hat odername
leer ist, wird der Wert der Eingabe nicht mit dem Formular gesendet! (Deaktivierte Steuerungen, nicht aktivierte Radio-Buttons, nicht aktivierte Checkboxes und Reset-Schaltflächen werden ebenfalls nicht gesendet.)Es gibt zwei Sonderfälle:
_charset_
: Wenn es als Name eines<input>
-Elements des Typs hidden verwendet wird, wird der Wert der Eingabe automatisch auf die Zeichenkodierung gesetzt, die verwendet wird, um das Formular zu übermitteln.isindex
: Aus historischen Gründen ist der Nameisindex
nicht erlaubt.
Das
name
Attribut schafft ein einzigartiges Verhalten für Radio-Buttons.Nur ein Radio-Button in einer gleichnamigen Gruppe von Radio-Buttons kann gleichzeitig ausgewählt sein. Wenn ein Radio-Button in dieser Gruppe selektiert wird, wird automatisch der derzeit selektierte Radio-Button in derselben Gruppe deaktiviert. Der Wert dieses einen selektierten Radio-Buttons wird zusammen mit dem Namen gesendet, wenn das Formular übermittelt wird.
Wenn durchgehend eine Gruppe von gleichnamigen Radio-Buttons indiziert wird, wird, wenn eines davon selektiert ist, dieses den Fokus erhalten. Wenn sie nicht zusammen in der Quell-Reihenfolge gruppiert sind, wird, wenn eines der Gruppe selektiert ist, das Indizieren in die Gruppe gestartet, wenn das erste in der Gruppe erreicht wird, wobei alle ignoriert werden, die nicht selektiert sind. Mit anderen Worten, wenn eines selektiert ist, wird das Indizieren die nicht-selektierten Radio-Buttons in der Gruppe überspringen. Wenn keine selektiert sind, erhält die Radio-Button-Gruppe den Fokus, wenn der erste Radio-Button in der gleichnamigen Gruppe erreicht ist.
Sobald ein Radio-Button in einer Gruppe den Fokus hat, kann mit den Pfeiltasten durch alle Radio-Buttons des gleichen Namens navigiert werden, auch wenn die Radio-Buttons nicht zusammen in der Quell-Reihenfolge sind.
Wenn einem Eingabefeld ein
name
zugewiesen wird, wird dieser Name zu einer Eigenschaft desHTMLFormElement.elements
-Eigenschaftselements des Besitzformulars. Wenn Sie eine Eingabe haben, derenname
aufguest
und eine andere 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"];
Wenn dieser Code ausgeführt wurde, wird
guestName
dasHTMLInputElement
für dasguest
-Feld sein, undhatSize
der Objekt für dashat-size
-Feld.Warnung: Vermeiden Sie es, Formularelementen einen
name
zu geben, der einer integrierten Eigenschaft des Formulars entspricht, da Sie damit die vordefinierte Eigenschaft oder Methode mit diesem Verweis auf das entsprechende Eingabefeld überschreiben würden. pattern
-
Gültig für
text
,search
,url
,tel
,email
undpassword
, wird daspattern
-Attribut verwendet, um einen regulären Ausdruck zu kompilieren, dem dervalue
der Eingabe entsprechen muss, um die Einschränkungsvalidierung zu bestehen. Es muss ein gültiger regulärer JavaScript-Ausdruck sein, wie er vomRegExp
-Typ verwendet wird und wie in unserem Leitfaden zu regulären Ausdrücken dokumentiert ist. Es sollten keine Schrägstriche um den Text des Musters angegeben werden. Beim Kompilieren des regulären Ausdrucks:- wird das Muster implizit mit
^(?:
und)$
umschlossen, sodass die Übereinstimmung gegen den gesamten Eingabewert erforderlich ist, d.h.^(?:<pattern>)$
. - wird der
'v'
-Flag angegeben, damit das Muster als eine Folge von Unicode-Codierungen behandelt wird, anstelle von ASCII.
Wenn das
pattern
-Attribut vorhanden ist, aber nicht spezifiziert oder ungültig ist, wird kein regulärer Ausdruck angewendet und dieses Attribut wird vollständig ignoriert. Wenn das Musterattribut gültig ist und ein nicht leerer Wert nicht mit dem Muster übereinstimmt, wird die Einschränkungsvalidierung die Formulareinreichung verhindern. Wenn dasmultiple
vorhanden ist, wird der kompilierte regulären Ausdruck gegen jeden der durch Kommata getrennten Werte getestet.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 hinzufügen, um die Anforderungen anzugeben, die sinnvollerweise in einem Tooltip angezeigt werden können; die meisten Browser zeigen diesen Titel als Tooltip an. Die sichtbare Erklärung ist aus Gründen der Zugänglichkeit erforderlich. Der Tooltip ist eine Verbesserung.Siehe die Client-seitige Validierung für mehr Informationen.
- wird das Muster implizit mit
placeholder
-
Gültig für
text
,search
,url
,tel
,email
,password
undnumber
, bietet dasplaceholder
-Attribut einen kurzen Hinweis an den Benutzer, welche Art von Information in das Feld eingegeben werden soll. Es sollte ein Wort oder ein kurzer Satz sein, der einen Hinweis auf die erwartete Datenart gibt und keine Erklärung oder Eingabeaufforderung. Der Text darf nicht Wagenrückläufe oder Zeilenumbrüche enthalten. Beispielsweise, wenn ein Feld darauf ausgelegt ist, den Vornamen eines Benutzers zu erfassen, und seine Beschriftung "Vorname" lautet, könnte ein geeigneter 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 Ihrer Inhalte verursachen. Siehe Labels für mehr Informationen. popovertarget
-
Macht ein
<input type="button">
-Element zu einer Popover-Steuerelement-Schaltfläche; verwendet die ID des Popover-Elements, das gesteuert werden soll. Siehe die Popover-API-Startseite für weitere Details. Eine Beziehung zwischen einem Popover und seiner Invoker-Schaltfläche durch daspopovertarget
-Attribut zu etablieren, hat zwei zusätzliche nützliche Effekte:- Der Browser erstellt eine implizite
aria-details
- undaria-expanded
-Beziehung zwischen Popover und Invoker und platziert das Popover logisch in der Fokusnavigation durch die Tastatur, wenn es angezeigt wird. Dies macht das Popover zugänglicher für Benutzer von Bildschirmlesern und assistiven Technologien (siehe auch Popover-Zugänglichkeitsmerkmale). - Der Browser erstellt ein implizites Anker-Referenz zwischen den beiden, sodass es sehr bequem ist, Popovers relativ zu ihren Steuerelementen zu positionieren, mithilfe der CSS-Ankerpositionierung. Siehe Popover-Ankerpositionierung für mehr Details.
- Der Browser erstellt eine implizite
popovertargetaction
-
Gibt die Aktion an, die an einem Popover-Element, das durch ein Steuerungselement
<input type="button">
gesteuert wird, ausgeführt werden soll. Mögliche Werte sind:"hide"
-
Die Schaltfläche versteckt ein angezeigtes Popover. Wenn Sie versuchen, ein bereits ausgeblendetes Popover zu verstecken, wird keine Aktion vorgenommen.
"show"
-
Die Schaltfläche zeigt ein ausgeblendetes Popover an. Wenn Sie versuchen, ein bereits angezeigtes Popover anzuzeigen, wird keine Aktion vorgenommen.
"toggle"
-
Die Schaltfläche schaltet ein Popover zwischen angezeigt und versteckt um. Wenn das Popover ausgeblendet ist, wird es angezeigt; wenn das Popover angezeigt wird, wird es versteckt. Wenn
popovertargetaction
weggelassen wird, wird"toggle"
die Standardaktion sein, die von der Steuerungsschaltstelle ausgeführt wird.
readonly
-
Ein Boolean-Attribut, das, wenn vorhanden, angibt, dass der Benutzer den Wert der Eingabe nicht ändern können sollte. Das
readonly
-Attribut wird von dentext
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
undpassword
Eingabetypen unterstützt.Siehe das HTML-Attribut:
readonly
für mehr Informationen. required
-
required
ist ein Boolean-Attribut, das, wenn vorhanden, bedeutet, dass der Benutzer einen Wert für die Eingabe angeben muss, bevor das Besitzformular übermittelt werden kann. Dasrequired
-Attribut wird von den Eingabentext
,search
,url
,tel
,email
,date
,month
,week
,time
,datetime-local
,number
,password
,checkbox
,radio
undfile
unterstützt.Siehe die Client-seitige Validierung und das HTML-Attribut:
required
für mehr Informationen. size
-
Gültig für
email
,password
,tel
,url
undtext
, bestimmt dassize
-Attribut, wie viel von der Eingabe angezeigt wird. Im Grunde erreicht das gleiche Ergebnis wie das Setzen der CSS-width
-Eigenschaft mit einigen Besonderheiten. Die tatsächliche Einheit des Werts hängt vom Eingabetyp ab. Fürpassword
undtext
ist es eine Anzahl von Zeichen (oderem
-Einheiten) mit einem Standardwert von20
, und für andere sind es Pixel (oderpx
-Einheiten). CSSwidth
hat Vorrang vor demsize
-Attribut. src
-
Gültig nur für die
image
-Eingabeschaltfläche,src
ist ein String, der die URL der Bilddatei angibt, die angezeigt werden soll, um die grafische Absenden-Schaltfläche darzustellen. Siehe den image-Eingabetyp. step
-
Gültig für
date
,month
,week
,time
,datetime-local
,number
undrange
, dasstep
-Attribut ist eine Zahl, die die Granularität bestimmt, an die sich der Wert halten muss.Wenn es nicht ausdrücklich einbezogen ist:
step
wird fürnumber
undrange
standardmäßig auf 1 gesetzt.- Jeder Datum-/Zeiteingabetyp hat einen Standard-
step
-Wert, der dem Typ angemessen ist; siehe die individuellen Eingabeseiten:date
,datetime-local
,month
,time
undweek
.
Der Wert muss eine positive Zahl—ganzzahlig oder Gleitkommazahl—sein oder der spezielle Wert
any
, was bedeutet, dass kein Schritt eingeschränkt werden muss und jeder Wert (abgesehen von anderen Einschränkungen wiemin
undmax
) erlaubt ist.Wenn
any
nicht ausdrücklich gesetzt ist, sind gültige Werte für dienumber
-, Datum-/Zeit-Eingabetypen undrange
-Eingabetypen gleich dem Schrittfundament—demmin
-Wert und Inkrementen desstep
-Wertes bis zummax
-Wert, falls angegeben.Zum Beispiel, wenn Sie
<input type="number" min="10" step="2">
haben, dann ist jede gerade Zahl,10
oder höher, gültig. Wenn der Wert weggelassen wird,<input type="number">
, ist jede Ganzzahl gültig, aber Gleitkommazahlen (wie4.2
) sind nicht gültig, dastep
standardmäßig1
ist. Für4.2
, gültig zu sein, müsstestep
aufany
, 0.1, 0.2 gesetzt werden oder dermin
-Wert müsste eine Zahl sein, die auf.2
endet, wie<input type="number" min="-5.2">
.Hinweis: Wenn die vom Benutzer eingegebenen Daten sich nicht an die Stepping-Konfiguration halten, wird der Wert in der Einschränkungsvalidierung als ungültig betrachtet und entspricht dem
:invalid
-Pseudoklasse.Siehe die Client-seitige Validierung für mehr Informationen.
tabindex
-
Globales Attribut gültig für alle Elemente, einschließlich aller Eingabetypen, ein ganzzahliges Attribut, das angibt, ob das Element den Eingabefokus aufnehmen kann (fokussierbar ist), wenn es an der sequentiellen Tastaturnavigation teilnehmen soll. Da alle Eingabetypen, außer der Eingabe des Typs hidden, fokussierbar sind, sollte dieses Attribut nicht auf Formularsteuerungselementen verwendet werden, weil man dann die Fokusreihenfolge für alle Elemente im Dokument mit der Gefahr der Beeinträchtigung der Benutzerfreundlichkeit und Zugänglichkeit steuern müsste, wenn es falsch gemacht wird.
title
-
Globales Attribut, gültig für alle Elemente, einschließlich aller Eingabetypen, enthält einen Text, der Beratungsinformationen über das zugehörige Element darstellt. 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 der Formularsteuerung verwendet werden. Stattdessen sollte das
<label>
-Element mit einemfor
-Attribut verwendet werden, das auf dasid
-Attribut der Formularsteuerung gesetzt ist. Siehe Labels unten. type
-
Ein String, der angibt, welcher Steuerelementtyp gerendert werden soll. Zum Beispiel, um ein Kontrollkästchen zu erstellen, wird ein Wert von
checkbox
verwendet. Wenn weggelassen (oder ein unbekannter Wert angegeben), wird der Eingabetyptext
verwendet, was ein Nur-Text-Eingabefeld erstellt.Zulässige Werte sind in den Eingabetypen oben aufgelistet.
value
-
Der Wert des Eingabesteuerelements. Wenn im HTML angegeben, ist das der initiale Wert, und dann kann er jederzeit durch JavaScript geändert oder abgerufen werden, indem auf die entsprechende
HTMLInputElement
-Objekteigenschaftvalue
zugegriffen wird. Dasvalue
-Attribut ist immer optional, sollte aber fürcheckbox
,radio
undhidden
als erforderlich betrachtet werden. width
-
Nur für die
image
-Eingabeschaltfläche gültig, diewidth
ist die Breite der Bilddatei, die angezeigt wird, um die grafische Absenden-Schaltfläche darzustellen. Siehe den image-Eingabetyp.
Nicht-standardisierte Attribute
Die folgenden nicht-standardisierten Attribute sind auch in einigen Browsern verfügbar. Grundsätzlich sollten Sie sie vermeiden, es sei denn, es gibt keine Alternative.
Attribut | Beschreibung |
---|---|
incremental |
Ob wiederkehrende [`search`](/de/docs/Web/API/HTMLInputElement/search_event)-Ereignisse gesendet werden oder nicht, um das Live-Aktualisieren von Suchergebnissen zu ermöglichen, während der Benutzer den Wert des Feldes noch bearbeitet. Nur WebKit und Blink (Safari, Chrome, Opera, etc.). |
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 das Feld bearbeitet wird; das wird verwendet, um ein geeignetes Label für diese Taste auf einer virtuellen Tastatur zu ermitteln. Da dieses Attribut veraltet ist, verwenden Sie |
orient |
Setzt die Ausrichtung des Bereichsschiebers. Nur Firefox.. |
results |
Die maximale Anzahl der Elemente, die in der Drop-down-Liste der bisherigen Suchanfragen angezeigt werden sollte. Nur Safari. |
webkitdirectory
|
Ein Boolean, der anzeigt, ob nur ein Verzeichnis (oder Verzeichnisse, wenn multiple ebenfalls vorhanden ist) von Benutzer ausgewählt werden können soll
|
incremental
Nicht standardisiert-
Das Boolean-Attribut
incremental
ist eine Erweiterung von WebKit und Blink (also unterstützt von Safari, Opera, Chrome, etc.), die, wenn vorhanden, dem Benutzer-Agenten sagt, dass die Eingabe als Live-Suche verarbeitet wird. Während der Benutzer den Wert des Feldes bearbeitet, sendet der Benutzer-Agentsearch
-Ereignisse an dasHTMLInputElement
-Objekt, das das Suchfeld repräsentiert. Dies ermöglicht Ihrem Code das Aktualisieren der Suchergebnisse in Echtzeit, während der Benutzer die Suche bearbeitet.Wenn
incremental
nicht angegeben ist, wird dassearch
-Ereignis nur gesendet, wenn der Benutzer explizit eine Suche initiiert (z.B. durch Drücken der Enter- oder Rückgabe-Taste, während das Feld bearbeitet wird).Das
search
-Ereignis ist so limitiert, dass es nicht öfter gesendet wird als im Implementationsabstand definiert. orient
Nicht standardisiert-
Ähnlich der nicht-standardisierten CSS-Eigenschaft -moz-orient, die die
<progress>
- und<meter>
-Elemente beeinflusst, definiert dasorient
-Attribut die Ausrichtung des Bereichschiebers. Zu den Werten gehörenhorizontal
, was bedeutet, dass der Bereich horizontal gerendert wird, undvertical
, bei dem der Bereich vertikal gerendert wird. Siehe Erstellen vertikaler Formularsteuerungen für einen modernen Ansatz zur Erstellung vertikaler Formularsteuerungen. results
Nicht standardisiert-
Das
results
-Attribut—nur von Safari unterstützt—ist ein numerischer Wert, der Ihnen erlaubt, die maximale Anzahl von Einträgen zu überschreiben, die im nativ bereitgestellten Drop-down-Menü der vorherigen Suchanfragen des<input>
-Elements angezeigt werden.Der Wert muss eine nicht-negative Dezimalzahl sein. Wenn nicht bereitgestellt oder ein ungültiger Wert angegeben ist, wird die Standard-Maximalzahl von Einträgen des Browsers verwendet.
webkitdirectory
Nicht standardisiert-
Das Boolean-
webkitdirectory
-Attribut, wenn vorhanden, gibt an, dass nur Verzeichnisse im Datei-Auswahl-Interface vom Benutzer zur Auswahl verfügbar gemacht werden sollen. SieheHTMLInputElement.webkitdirectory
für zusätzliche Details und Beispiele.Auch wenn es ursprünglich nur für WebKit-basierte Browser implementiert wurde, kann
webkitdirectory
auch in Microsoft Edge wie auch in Firefox 50 und höher verwendet werden. Trotz der relativ breiten Unterstützung ist es 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. Ebenfalls verfügbar sind die in den übergeordneten Schnittstellen spezifizierten Methoden, HTMLElement
, Element
, Node
und EventTarget
.
checkValidity()
-
Gibt
true
zurück, wenn der Wert des Elements die Validitätsprüfungen besteht; ansonsten gibt esfalse
zurück und löst eininvalid
-Ereignis am Element aus. reportValidity()
-
Gibt
true
zurück, wenn der Wert des Elements die Validitätsprüfungen besteht; ansonsten gibt esfalse
zurück, löst eininvalid
-Ereignis am Element aus und (wenn das Ereignis nicht abgebrochen wird) meldet das Problem an den Benutzer. select()
-
Wählt den gesamten Inhalt des
<input>
-Elements aus, wenn der Inhalt des Elements auswählbar ist. Bei Elementen mit nicht auswählbarem Textinhalt (z.B. ein visueller Farbwähler oder ein Kalendardatumeingabefeld) macht diese Methode nichts. setCustomValidity()
-
Setzt eine benutzerdefinierte Nachricht, die angezeigt wird, wenn der Wert des Eingabefelds ungültig ist.
setRangeText()
-
Setzt den Inhalt des angegebenen Zeichenbereichs 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 angegebenen Bereich von Zeichen innerhalb eines Text-Eingabeelements aus. Machen Sie nichts für Eingabefelder, die nicht als Texteingabefelder dargestellt werden.
showPicker()
-
Zeigt den Browser-Auswahler für das Eingabefeld an, der normalerweise angezeigt wird, wenn das Element ausgewählt wird, aber durch einen Tastendruck oder eine andere Benutzerinteraktion ausgelöst wird.
stepDown()
-
Verringert den Wert einer numerischen Eingabe um eins, standardmäßig, oder um die angegebene Anzahl von Einheiten.
stepUp()
-
Erhöht den Wert einer numerischen Eingabe um eins oder um die angegebene Anzahl von Einheiten.
CSS
Inputs, als ersetzte Elemente, haben einige Eigenschaften, die nicht auf Nicht-Formularelemente anwendbar sind. Es gibt CSS-Selektoren, die gezielt Formularsteuerungen basierend auf ihren UI-Funktionen ansprechen können, auch bekannt als UI-Pseudo-Klassen. Das Input-Element kann auch nach Typ mit Attributselektoren angesprochen werden. Einige Eigenschaften sind ebenfalls besonders nützlich.
UI-Pseudo-Klassen
Pseudo-Klasse | Beschreibung |
---|---|
:enabled |
Jedes derzeit aktivierte Element, das aktiviert werden kann (ausgewählt, angeklickt, hineingetippt, etc.) oder den Fokus akzeptieren kann und auch einen deaktivierten Zustand hat, in dem es nicht aktiviert werden kann oder den Fokus nicht akzeptieren kann. |
:disabled |
Jedes derzeit deaktivierte Element, das einen aktivierten Zustand hat, was bedeutet, dass es ansonsten aktiviert werden könnte (ausgewählt, angeklickt, hineingetippt, etc.) oder den Fokus akzeptieren könnte, wenn es nicht deaktiviert wäre. |
:read-only |
Element, das vom Benutzer nicht bearbeitet werden kann |
:read-write |
Element, das vom Benutzer bearbeitet werden kann. |
:placeholder-shown |
Element, das derzeit placeholder -Text anzeigt, einschließlich <input> und <textarea> , bei denen das placeholder -Attribut vorhanden ist und die bislang keinen Wert haben.
|
:default |
Formularelemente, die in einer Gruppe verwandter Elemente die Standardeinstellung sind. Passt zu checkbox und radio Eingabetypen, die beim Laden der Seite oder beim Rendern markiert waren. |
:checked |
Passt zu checkbox und radio Eingabetypen, die derzeit ausgewählt sind (und die <option> in einer <select> derzeit ausgewählt sind).
|
:indeterminate |
checkbox Elemente, deren indeterminate-Eigenschaft durch JavaScript auf true gesetzt ist, radio Elemente, wenn alle Radiobuttons mit demselben Namenwert im Formular nicht markiert sind, und <progress> Elemente im unbestimmten Zustand.
|
:valid |
Formularelemente, auf die die Validierung von Einschränkungen angewendet werden kann und die derzeit gültig sind. |
:invalid |
Formularelemente, auf die die Validierung von Einschränkungen angewendet wird und die derzeit nicht gültig sind. Passt zu einem Formularelement, 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 das step -Attribut 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 der step -Einschränkung 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 erforderbaren Element führt nicht zu einer Ü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 bei Feldaustritt aktiviert. Passt auf ein ungültiges Eingabeelement, aber nur nach der Benutzerinteraktion, wie z.B. durch Fokussierung auf das Steuerungselement, Verlassen des Steuerungselements oder Versuch, das Formular mit dem ungültigen Steuerungselement abzusenden.
|
:open |
<input> Elemente, die ein Auswahlfenster anzeigen, aus dem der Benutzer einen Wert auswählen kann (z.B. <input type="color"> ) — aber nur, wenn das Element im offenen Zustand ist, d.h. wenn das Auswahlfenster angezeigt wird.
|
Beispiel für Pseudo-Klassen
Wir können das Label eines Kontrollkästchens basierend darauf stylen, ob das Kontrollkästchen ausgewählt ist oder nicht. In diesem Beispiel stylen wir die color
und font-weight
des <label>
, das sofort nach einem ausgewählten input
kommt. Wir haben keine Stile angewendet, wenn die input
-Eingabe nicht ausgewählt ist.
input:checked + label {
color: red;
font-weight: bold;
}
Attribut-Selektoren
Es ist möglich, verschiedene Arten von Formularelementen basierend auf ihrem type
mit Attribut-Selektoren anzusprechen. CSS Attribut-Selektoren stimmen Elemente basierend entweder nur auf das Vorhandensein eines Attributs oder den Wert eines bestimmten Attributs überein.
/* 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 placeholder
-Text transluzent oder hellgrau. Das ::placeholder
Pseudo-Element ist der placeholder
-Text der Eingabe. Es kann mit einem begrenzten Teil von CSS-Eigenschaften gestylt werden.
::placeholder {
color: blue;
}
Nur der Teil der CSS-Eigenschaften, die auf das ::first-line
Pseudo-Element anwendbar sind, kann in einer Regel verwendet werden, die ::placeholder
in seinem Selektor verwendet.
appearance
Die appearance
Eigenschaft ermöglicht es, (fast) jedem Element eine plattformnative Darstellung basierend auf dem Betriebssystemthema zu geben sowie die Entfernung jeglicher plattformnativen Gestaltung mit dem Wert none
.
Sie könnten ein <div>
wie ein Radio-Button aussehen lassen mit div {appearance: radio;}
oder ein Radio wie ein Kontrollkästchen mit [type="radio"] {appearance: checkbox;}
, aber machen Sie es nicht.
Das Setzen von appearance: none
entfernt plattformnative Rahmen, aber nicht die Funktionalität.
caret-color
Eine Eigenschaft, die speziell für Texteingabeelemente gilt, 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 es Ihnen, das Größenverhalten von Formulareingaben zu steuern (d.h. sie erhalten standardmäßig eine bevorzugte Standardgröße). Diese Eigenschaft ermöglicht es Ihnen, das Standardverhalten zu überschreiben, sodass Formularelemente ihre Größe ändern können, um ihren Inhalt anzupassen.
Diese Eigenschaft wird typischerweise verwendet, um Formularfelder zu erstellen, die ihren Inhalt umschließen und wachsen, wenn mehr Text eingegeben wird. Dies funktioniert mit Eingabetypen, die direkte Texteingaben akzeptieren (z.B. text
und url
), Eingabetyp file
und <textarea>
Elemente.
object-position und object-fit
In bestimmten Fällen (typischerweise nicht-textuelle Eingaben und spezialisierte Schnittstellen betreffend) ist das <input>
Element ein ersetztes Element. Wenn es dies ist, können die Position und die Größe des Elements Größe und 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 Elementen in HTML siehe:
Siehe auch:
Zusätzliche Funktionen
Labels
Labels sind erforderlich, um erklärenden Text mit einem <input>
zu verknüpfen. Das <label>
Element bietet stets geeignete erläuternde Informationen über ein Formularfeld (abgesehen von eventuellen Layoutproblemen). Es ist nie eine schlechte Idee, ein <label>
zu verwenden, um zu erklären, was in ein <input>
oder <textarea>
eingegeben werden soll.
Zugeordnete Labels
Das semantische Paaren von <input>
und <label>
Elementen ist nützlich für unterstützende Technologien wie Screenreader. Durch das Paaren mit dem for
Attribut des <label>
, binden Sie das Label an das Eingabeelement auf eine Weise, die Screenreadern ermöglicht, Eingaben den Benutzern präziser zu beschreiben.
Es reicht nicht aus, einfachen Text neben dem <input>
Element zu haben. Vielmehr erfordert Benutzerfreundlichkeit und Zugänglichkeit die Einbeziehung eines impliziten oder expliziten <label>
:
<!-- inaccessible -->
<p>Enter your name: <input id="name" type="text" size="30" /></p>
<!-- implicit label -->
<p>
<label>Enter your name: <input id="name" type="text" size="30" /></label>
</p>
<!-- explicit label -->
<p>
<label for="name">Enter your name: </label>
<input id="name" type="text" size="30" />
</p>
Das erste Beispiel ist nicht barrierefrei: Es besteht keine Beziehung zwischen der Aufforderung und dem <input>
Element.
Zusätzlich zu einem zugänglichen Namen bietet das Label einen größeren "Treffer"-Bereich für Maus- und Touchscreen-Benutzer, auf den sie klicken oder tippen können. Durch das Paaren eines <label>
mit einem <input>
, führt ein Klick oder Tipp auf eines der beiden zur Fokussierung des <input>
. Wenn Sie einfachen Text verwenden, um Ihre Eingabe zu "labeln", passiert dies nicht. Das Einfügen der Aufforderung als Teil des Aktivierungsbereichs für das Eingabefeld ist hilfreich für Personen mit motorischen Störungen.
Als Webentwickler sollten wir niemals davon ausgehen, dass Menschen alles wissen, was wir wissen. Die Vielfalt der Menschen, die das Web nutzen - und damit auch Ihre Website - garantiert praktisch, dass einige Ihrer Website-Besucher aufgrund unterschiedlicher Denkmuster und/oder Umstände Ihre Formulare ohne klare und ordnungsgemäß präsentierte Labels sehr unterschiedlich interpretieren.
Platzhalter sind nicht barrierefrei
Das placeholder
Attribut ermöglicht es Ihnen, Text zu spezifizieren, der innerhalb 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 darf nicht als Ersatz verwendet werden, da es keins ist. Der Platzhalter wird verwendet, um einen Hinweis zu geben, wie ein eingegebener Wert aussehen sollte, nicht als Erklärung oder Aufforderung.
Der Platzhalter ist für Screenreader nicht zugänglich, und er verschwindet, sobald der Benutzer Text in das Formularelement eingibt oder wenn das Formularelement bereits einen Wert hat. Browser mit automatischen Seitenübersetzungsfunktionen überspringen möglicherweise Attribute bei der Übersetzung, was bedeutet, dass der placeholder
möglicherweise nicht übersetzt wird.
Hinweis:
Verwenden Sie das placeholder
-Attribut nach Möglichkeit nicht. Wenn Sie ein <input>
Element labeln müssen, verwenden Sie das <label>
Element.
Client-seitige Validierung
Warnung:
Die 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 stylen, basierend auf dem aktuellen Zustand jeder Eingabe, wie im Abschnitt UI-Pseudo-Klassen oben erwähnt, bietet der Browser die client-seitige Validierung bei (versuchter) Formularübermittlung. Bei der Formularübermittlung wird bei einem Formularsteuerelement, das die Einschränkungsvalidierung nicht erfüllt, ein unterstützender Browser eine Fehlermeldung am ersten ungültigen Formularsteuerelement anzeigen; sei es durch die Anzeige einer Standardmeldung basierend auf dem Fehlertyp oder einer von Ihnen festgelegten Meldung.
Einige Eingabetypen und andere Attribute setzen Grenzen für die gültigen Werte, die für eine gegebene Eingabe zulässig sind. Zum Beispiel bedeutet <input type="number" min="2" max="10" step="2">
, dass nur die Zahlen 2, 4, 6, 8 oder 10 gültig sind. Es können mehrere Fehler auftreten, darunter ein rangeUnderflow
Fehler, wenn der Wert kleiner als 2 ist, rangeOverflow
, wenn größer als 10, stepMismatch
, wenn der Wert eine Zahl zwischen 2 und 10 ist, aber keine gerade Ganzzahl (nicht den Anforderungen des step
Attributs entspricht), oder typeMismatch
, wenn der Wert keine Zahl ist.
Für die Eingabetypen, deren Werteraum periodisch ist (also am höchsten möglichen Wert, die Werte zurück zum Anfang überschreiten, anstatt zu enden), ist es möglich, dass die Werte der max
und min
Eigenschaften umgekehrt sind, was zeigt, dass der Bereich der erlaubten Werte bei min
beginnt, dann zum niedrigsten möglichen Wert springt, und dann weitergeht, bis max
erreicht ist. Dies ist besonders nützlich für Datums- und Zeitangaben, wie zum Beispiel, wenn Sie den Bereich von 20 Uhr bis 8 Uhr zulassen möchten:
<input type="time" min="20:00" max="08:00" name="overnight" />
Spezifische Attribute und ihre Werte können zu einem bestimmten Fehler ValidityState
führen:
Attribut | Relevante Eigenschaft | Beschreibung |
---|---|---|
max |
[`validityState.rangeOverflow`](/de/docs/Web/API/ValidityState/rangeOverflow) |
Tritt auf, wenn der Wert größer als der maximale Wert ist, wie durch das max Attribut definiert.
|
maxlength |
[`validityState.tooLong`](/de/docs/Web/API/ValidityState/tooLong) |
Tritt auf, wenn die Anzahl der Zeichen größer ist als die durch die maxlength Eigenschaft erlaubte.
|
min |
[`validityState.rangeUnderflow`](/de/docs/Web/API/ValidityState/rangeUnderflow) |
Tritt auf, wenn der Wert kleiner als der minimale Wert ist, wie durch das min Attribut definiert.
|
minlength |
[`validityState.tooShort`](/de/docs/Web/API/ValidityState/tooShort) |
Tritt auf, wenn die Anzahl der Zeichen kleiner ist als die durch die minlength Eigenschaft erforderte.
|
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 dazu passt.
|
required |
[`validityState.valueMissing`](/de/docs/Web/API/ValidityState/valueMissing) |
Tritt auf, wenn das required Attribut vorhanden ist, aber der Wert null ist oder Radio- oder Kontrollkästchen nicht ausgewählt sind.
|
step |
[`validityState.stepMismatch`](/de/docs/Web/API/ValidityState/stepMismatch) |
Der Wert entspricht nicht dem Schrittinkrement. Das Standardinkrement ist 1 , sodass nur ganze Zahlen gültig sind, wenn `type="number"` ist, wenn `step` nicht eingeschlossen ist. step="any" wird diesen Fehler nie 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.
|
Wenn ein Formularelement nicht das required
Attribut hat, ist kein Wert oder ein leerer String nicht ungültig. Auch wenn die oben genannten Attribute vorhanden sind, mit Ausnahme von required
, wird ein leerer String nicht zu einem Fehler führen.
Wir können Grenzen festlegen, welche Werte wir akzeptieren, und unterstützende Browser werden diese Formularwerte nativ validieren und den Benutzer benachrichtigen, wenn bei der Einreichung ein Fehler vorliegt.
Neben den in der Tabelle beschriebenen Fehlern enthält die validityState
-Schnittstelle die booleschen, nur lesbaren Eigenschaften badInput
, valid
und customError
. Das Gültigkeitsobjekt umfasst:
validityState.valueMissing
validityState.typeMismatch
validityState.patternMismatch
validityState.tooLong
validityState.tooShort
validityState.rangeUnderflow
validityState.rangeOverflow
validityState.stepMismatch
validityState.badInput
validityState.valid
validityState.customError
Bei diesen booleschen Eigenschaften zeigt ein Wert von true
an, dass der angegebene Grund für das Scheitern der Validierung wahr ist, mit Ausnahme der valid
-Eigenschaft, die true
ist, wenn der Wert des Elements alle Einschränkungen erfüllt.
Wenn ein Fehler auftritt, benachrichtigen unterstützende Browser den Benutzer und verhindern das Absenden des Formulars. Eine Warnung: Wenn ein benutzerdefinierter Fehler auf einen wahrheitsgemäßen Wert gesetzt wird (d.h. alles andere als ein leerer String oder null
), wird das Absenden des Formulars verhindert. Wenn keine benutzerdefinierte Fehlermeldung vorliegt und keine der anderen Eigenschaften true
zurückgibt, ist valid
wahr 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 Fehlermeldung auf den leeren String setzt, ist entscheidend. Wenn der Benutzer einen Fehler macht und die Gültigkeit gesetzt ist, wird das Formular nicht gesendet, selbst wenn alle Werte gültig sind, bis die Nachricht null
ist.
Beispiel für benutzerdefinierte Validierungsfehler
Wenn Sie eine benutzerdefinierte Fehlermeldung präsentieren möchten, wenn ein Feld die Validierung nicht besteht, müssen Sie die Constraint Validation API verwenden, die auf <input>
(und verwandte) Elemente verfügbar ist. Nehmen Sie das folgende Formular:
<form>
<label for="name">Enter username (upper and lowercase letters): </label>
<input type="text" name="name" id="name" required pattern="[A-Za-z]+" />
<button>Submit</button>
</form>
Die grundlegenden HTML-Formularvalidierungsfunktionen führen dazu, dass dies eine Standardfehlermeldung anzeigt, wenn Sie versuchen, das Formular einzureichen, ohne gültig ausgefüllt zu sein oder einen Wert zu haben, der nicht dem pattern
entspricht.
Wenn Sie stattdessen benutzerdefinierte Fehlermeldungen anzeigen möchten, könnten Sie JavaScript wie das folgende verwenden:
const nameInput = document.querySelector("input");
nameInput.addEventListener("input", () => {
nameInput.setCustomValidity("");
nameInput.checkValidity();
});
nameInput.addEventListener("invalid", () => {
if (nameInput.value === "") {
nameInput.setCustomValidity("Enter your username!");
} else {
nameInput.setCustomValidity(
"Usernames can only contain upper and lowercase letters. Try again!",
);
}
});
Das Beispiel sieht wie folgt aus:
Kurz gesagt:
- Wir überprüfen den gültigen Zustand des Eingabeelements jedes Mal, wenn sich sein Wert ändert, indem wir die
checkValidity()
-Methode über deninput
-Ereignishandler ausführen. - Wenn der Wert ungültig ist, wird ein
invalid
-Ereignis ausgelöst und dieinvalid
-Ereignishandlerfunktion ausgeführt. Innerhalb dieser Funktion ermitteln wir, ob der Wert unzulässig ist, weil er leer ist oder weil er nicht dem Muster entspricht, indem wir eineif ()
-Block verwenden und eine benutzerdefinierte Fehlernachricht festlegen. - Infolgedessen, wenn der Eingabewert ungültig ist, wenn die Schaltfläche "Senden" gedrückt wird, wird eine der benutzerdefinierten Fehlermeldungen angezeigt.
- Wenn es gültig ist, wird es auf die erwartete Weise gesendet. Damit dies geschieht, muss die benutzerdefinierte Gültigkeit mit dem Aufruf von
setCustomValidity()
mit einem leeren String-Wert abgebrochen werden. Wir tun dies daher jedes Mal, wenn dasinput
-Ereignis ausgelöst wird. Wenn Sie dies nicht tun und eine benutzerdefinierte Gültigkeit zuvor festgelegt wurde, wird die Eingabe als ungültig registriert, auch wenn sie derzeit einen gültigen Wert beim Absenden enthält.
Hinweis: Überprüfen Sie immer Eingabe-Einschränkungen sowohl clientseitig als auch serverseitig. Die Einschränkungsvalidierung beseitigt nicht die Notwendigkeit der Validierung auf der Server-Seite. Ungültige Werte können immer noch durch ältere Browser oder schlechte Akteure gesendet werden.
Hinweis:
Firefox unterstützte ein proprietäres Fehlerattribut — x-moz-errormessage
— für viele Versionen, das es Ihnen erlaubte, benutzerdefinierte Fehlermeldungen auf ähnliche Weise festzulegen. Dies wurde ab Version 66 entfernt (siehe Firefox-Bug 1513890).
Lokalisierung
Die erlaubten Eingaben für bestimmte <input>
Typen hängen vom Gebietsschema ab. In einigen Gebietsschemata ist 1.000,00 eine gültige Zahl, während in anderen Gebietsschemata die gültige Eingabemöglichkeit 1.000,00 ist.
Firefox verwendet die folgenden Heuristiken, um das Gebietsschema zu bestimmen, um die Benutzereingabe zu validieren (zumindest für type="number"
):
- Versuchen Sie die Sprache, die durch ein
lang
/xml:lang
Attribut auf dem Element oder einem seiner Eltern festgelegt ist. - Versuchen Sie die Sprache, die durch einen
Content-Language
HTTP-Header angegeben wird. Oder - Wenn keine angegeben ist, verwenden Sie das Gebietsschema des Browsers.
Zugänglichkeit
Labels
Wenn Eingaben enthalten sind, ist es eine Zugänglichkeitsanforderung, Labels beizufügen. Dies ist erforderlich, damit diejenigen, die unterstützende Technologien verwenden, erkennen können, welche Funktion die Eingabe hat. Außerdem erhält ein Klick oder ein Fingertipp auf ein Label den Fokus auf das mit dem Label verknüpfte Formularelement. Dies verbessert die Zugänglichkeit und Benutzerfreundlichkeit für sehende Benutzer, erhöht den Bereich, den Benutzer klicken oder berühren können, um die Formularelemente zu aktivieren. Dies ist besonders nützlich (und sogar erforderlich) für Radiobuttons und Kontrollkästchen, die klein sind. Für weitere Informationen zu Labels im Allgemeinen siehe Labels.
Das folgende ist ein Beispiel, wie Sie das <label>
mit einem <input>
Element im oben beschriebenen Stil verknüpfen können. Sie müssen dem <input>
ein id
-Attribut zuweisen. Das <label>
benötigt dann ein for
-Attribut, dessen Wert mit der id
der Eingabe übereinstimmt.
<label for="peas">Do you like peas?</label>
<input type="checkbox" name="peas" id="peas" />
Größe
Interaktive Elemente wie Formulareingaben sollten einen ausreichend großen Bereich bieten, um sie leicht zu aktivieren. Dies hilft einer Vielzahl von Menschen, einschließlich Personen mit motorischen Einschränkungen und Personen, die ungenaue Eingabemethoden wie einen Stylus oder Finger verwenden. Eine Mindestinteraktionsgröße von 44×44 CSS-Pixeln wird empfohlen.
Technische Zusammenfassung
Inhaltskategorien |
Fließender Inhalt, aufgelistet, einreichbar, zurücksetzbares, formularassoziiertes Element,
Phrasing-Inhalt. Wenn der type nicht
hidden ist, dann ein element mit Label, fühlbarer Inhalt.
|
---|---|
Erlaubter Inhalt | Keiner; es ist ein leeres Element. |
Tag-Auslassung | Muss einen Start-Tag haben und darf keinen End-Tag haben. |
Erlaubte Eltern | Jedes Element, das Phrasing-Inhalt akzeptiert. |
Implizite ARIA-Rolle |
|
Erlaubte ARIA-Rollen |
|
DOM-Schnittstelle | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
Spezifikationen
Specification |
---|
HTML # the-input-element |
Browser-Kompatibilität
Siehe auch
- Formularbeschränkungsvalidierung
- Ihr erstes HTML-Formular
- Wie man ein HTML-Formular strukturiert
- Die nativen Formular-Widgets
- Versenden von Formulardaten
- Formulardatenvalidierung
- Wie man benutzerdefinierte Formular-Widgets erstellt
- HTML-Formulare in älteren Browsern
- Styling von HTML-Formularen
- Erweiterte Gestaltung für HTML-Formulare
- Erstellen von vertikalen Formularsteuerungen