Das input-Tag und seine Typen
<input> ist ein Formularfeld, und sein type-Attribut entscheidet, welche Art. Dasselbe Tag erzeugt ein Textfeld, einen Schieberegler, eine Datumsauswahl oder eine Farbauswahl. Probier jedes Feld unten aus und drück auf Submit, um zu sehen, was das Formular sendet:
<input> ist ein Void-Element und hat daher kein schließendes Tag. Sein name ist der Schlüssel, unter dem der Wert gesendet wird, und value ist der Startwert. Ein fehlender oder falsch geschriebener type ergibt ein normales Textfeld.
Alle HTML-Input-Typen
type | Was es ist | Hinweise |
|---|---|---|
text | Eine Zeile Text | Der Standard |
password | Text, der als Punkte angezeigt wird | Wird dadurch nicht verschlüsselt; über HTTPS senden |
email | Eine E-Mail-Adresse | Prüft das Format; @-Taste auf Handytastaturen |
url | Eine Webadresse | Muss mit einem Schema wie https:// beginnen |
tel | Eine Telefonnummer | Ziffernblock auf dem Handy, keine Formatprüfung |
search | Ein Suchfeld | Zeigt oft einen Löschen-Button |
number | Eine Zahl | Pfeiltasten, min, max, step |
range | Ein Schieberegler | Absichtlich ungenau; der Wert ist eine Zahl |
date | Ein Datum | Wert ist YYYY-MM-DD |
time | Eine Uhrzeit | Wert ist HH:MM (24 Stunden) |
datetime-local | Datum und Uhrzeit, ohne Zeitzone | Wert ist YYYY-MM-DDTHH:MM |
month | Ein Jahr und Monat | Nicht in jedem Browser unterstützt |
week | Ein Jahr und eine Kalenderwoche | Nicht in jedem Browser unterstützt |
color | Eine Farbauswahl | Wert ist #rrggbb in Kleinbuchstaben |
checkbox | Ein Kästchen zum An- und Abhaken | Siehe HTML Checkbox |
radio | Eine Auswahl aus einer Gruppe | Siehe HTML Radio Button |
file | Eine Dateiauswahl | accept, multiple |
hidden | Ein Wert, der gesendet, aber nicht angezeigt wird | Für IDs und Tokens |
submit | Ein Absende-Button | <button type="submit"> ist flexibler |
reset | Ein Zurücksetzen-Button | Selten eine gute Idee |
button | Ein Button, der von selbst nichts tut | Für JavaScript |
image | Ein Absende-Button in Form eines Bildes | Sendet auch die Klickkoordinaten |
Texttypen und Handytastaturen
email, url, tel, search und text sehen auf dem Desktop alle wie ein Textfeld aus. Der Unterschied liegt in der Validierung und auf Handys darin, welche Tastatur sich öffnet. Der Rahmen in diesem Beispiel wird grün oder rot, je nachdem, wie der Browser den Wert beurteilt:
ada@exampleist für den Browser eine gültige E-Mail-Adresse: Er prüft nur auf Text,@und eine Domain, nicht darauf, dass die Domain einen Punkt enthält. Die echte Prüfung passiert auf dem Server.example.comist keine gültigeurl, weil das Schema fehlt.https://example.comist gültig.telakzeptiert alles. Telefonformate unterscheiden sich zwischen Ländern zu stark, deshalb gibt es keine eingebaute Prüfung; füg einpatternhinzu, wenn du eine brauchst.inputmode="numeric"fordert auf Handys eine Zifferntastatur an, ohne die Probleme vontype="number". Deshalb ist es die richtige Wahl für Postleitzahlen, Einmalcodes und Kartennummern.
number und range
Beide nehmen min, max und step. number ist für exakte Werte; range ist ein Schieberegler für Werte, bei denen die genaue Zahl weniger zählt. Ein range-Regler zeigt keine Zahl an, kombiniere ihn also mit einem <output>:
step ist bei number standardmäßig 1, ein Preisfeld ohne step="0.01" lehnt 4.99 beim Absenden also ab. In JavaScript ist input.value immer ein String; mit input.valueAsNumber bekommst du eine Zahl.
Datum und Uhrzeit
Die Typen für Datum und Uhrzeit öffnen die eigene Auswahl des Browsers. Was der Leser sieht, folgt seinem Gebietsschema (09/24/2026, 24.09.2026), aber der Wert hat immer dasselbe feste Format:
Dieses feste Format bekommt der Server und liest JavaScript, du musst also nie „24.09.2026“ parsen. min und max nehmen dasselbe Format. datetime-local hat keine Zeitzone: Wenn sie wichtig ist, rechne auf dem Server mit der Zeitzone des Lesers um.
color und file
accept="image/*" beschränkt die Dateiauswahl auf Bilder (und bietet auf Handys die Kamera an); es nimmt auch Dateiendungen wie accept=".pdf,.docx". Es ist nur ein Hinweis für die Auswahl, prüf den Dateityp also auf dem Server. multiple erlaubt mehrere Dateien. Ein echter Upload braucht außerdem method="post" und enctype="multipart/form-data" am Formular.
Vorschläge mit datalist
Eine <datalist> gibt einem Textfeld eine Liste von Vorschlägen und erlaubt trotzdem jeden Wert. Verbunden werden sie über das Attribut list:
Tipp „ja“ in das Feld, um die passenden Vorschläge zu sehen. Anders als bei einem Select kann der Leser einen Wert eintippen, der nicht in der Liste steht.
Attribute für Inputs
| Attribut | Macht |
|---|---|
name | Der Schlüssel, unter dem der Wert gesendet wird |
value | Der Startwert |
placeholder | Ein Hinweis, solange das Feld leer ist (kein Label) |
required | Muss vor dem Absenden ausgefüllt sein |
disabled | Nicht benutzbar und wird nicht gesendet |
readonly | Nicht bearbeitbar, wird aber gesendet |
autocomplete | Was automatisch ausgefüllt wird: email, name, current-password, one-time-code, off |
min, max, step | Grenzen für Zahlen, Bereiche, Datum und Uhrzeit |
minlength, maxlength | Längengrenzen für Texttypen |
pattern | Ein regulärer Ausdruck, auf den der ganze Wert passen muss |
inputmode | Welche Handytastatur erscheint: numeric, decimal, email, tel, url |
list | Die id einer <datalist> |
multiple | Mehrere Werte, bei email und file |
accept | Dateitypen bei file |
Häufige Fehler
type="number"für Telefonnummern, Postleitzahlen oder Kartennummern. Das sind keine Mengen. Nimmtelodertextmitinputmode="numeric".- Ein Preisfeld ohne
step="0.01". Dezimalwerte fallen durch die Validierung. placeholderals Label verwenden. Es verschwindet, sobald der Leser tippt.- Sich für die Sicherheit auf
acceptodertype="email"verlassen. Sie dienen der Bequemlichkeit; der Server prüft erneut. type="month"odertype="week"ohne Fallback. Manche Browser zeigen ein normales Textfeld.- Ein schließendes
</input>-Tag.<input>ist ein Void-Element.
Häufig gestellte Fragen
Wie viele Input-Typen gibt es in HTML?
22: button, checkbox, color, date, datetime-local, email, file, hidden, image, month, number, password, radio, range, reset, search, submit, tel, text, time, url und week. Ein unbekannter oder fehlender Typ verhält sich wie text.
Was ist der Standard-Input-Typ in HTML?
text. Ein <input> ohne type oder mit einem Typ, den der Browser nicht kennt, ist ein einzeiliges Textfeld.
Soll ich type="number" für Telefonnummern oder Postleitzahlen verwenden?
Nein. number ist für Mengen: Es fügt Pfeiltasten hinzu und lehnt das +, Leerzeichen und Bindestriche ab, die in Telefonnummern vorkommen. Nimm type="tel" für Telefonnummern und type="text" mit inputmode="numeric" für Codes wie Postleitzahlen und Kartennummern.
Welches Format hat input type date?
Der Wert ist immer YYYY-MM-DD, etwa 2026-09-24, egal in welchem Format der Leser das Datum auf dem Bildschirm sieht. Die Anzeige folgt dem Gebietsschema des Lesers; der gesendete und per Skript gelesene Wert nicht.
Braucht das input-Tag ein schließendes Tag?
Nein. <input> ist ein Void-Element: Schreib <input type="text" name="city">. Ein schließendes </input> ist ungültig, und der Schrägstrich in <input /> ist erlaubt, bewirkt aber nichts.