Menu

HTML Input-Typen: alle 22 Typen des input-Tags

Alle Typen des HTML-Tags <input> an einem Ort: text, email, password, number, range, date und time, color, file, hidden und der Rest, mit dem, was jeder Typ prüft, der Tastatur, die er auf Handys öffnet, und den Attributen, die sie gemeinsam haben.

Diese Seite enthält ausführbare Editoren - bearbeiten, ausführen und Ausgabe sofort sehen.

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

typeWas es istHinweise
textEine Zeile TextDer Standard
passwordText, der als Punkte angezeigt wirdWird dadurch nicht verschlüsselt; über HTTPS senden
emailEine E-Mail-AdressePrüft das Format; @-Taste auf Handytastaturen
urlEine WebadresseMuss mit einem Schema wie https:// beginnen
telEine TelefonnummerZiffernblock auf dem Handy, keine Formatprüfung
searchEin SuchfeldZeigt oft einen Löschen-Button
numberEine ZahlPfeiltasten, min, max, step
rangeEin SchiebereglerAbsichtlich ungenau; der Wert ist eine Zahl
dateEin DatumWert ist YYYY-MM-DD
timeEine UhrzeitWert ist HH:MM (24 Stunden)
datetime-localDatum und Uhrzeit, ohne ZeitzoneWert ist YYYY-MM-DDTHH:MM
monthEin Jahr und MonatNicht in jedem Browser unterstützt
weekEin Jahr und eine KalenderwocheNicht in jedem Browser unterstützt
colorEine FarbauswahlWert ist #rrggbb in Kleinbuchstaben
checkboxEin Kästchen zum An- und AbhakenSiehe HTML Checkbox
radioEine Auswahl aus einer GruppeSiehe HTML Radio Button
fileEine Dateiauswahlaccept, multiple
hiddenEin Wert, der gesendet, aber nicht angezeigt wirdFür IDs und Tokens
submitEin Absende-Button<button type="submit"> ist flexibler
resetEin Zurücksetzen-ButtonSelten eine gute Idee
buttonEin Button, der von selbst nichts tutFür JavaScript
imageEin Absende-Button in Form eines BildesSendet 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@example ist 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.com ist keine gültige url, weil das Schema fehlt. https://example.com ist gültig.
  • tel akzeptiert alles. Telefonformate unterscheiden sich zwischen Ländern zu stark, deshalb gibt es keine eingebaute Prüfung; füg ein pattern hinzu, wenn du eine brauchst.
  • inputmode="numeric" fordert auf Handys eine Zifferntastatur an, ohne die Probleme von type="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

AttributMacht
nameDer Schlüssel, unter dem der Wert gesendet wird
valueDer Startwert
placeholderEin Hinweis, solange das Feld leer ist (kein Label)
requiredMuss vor dem Absenden ausgefüllt sein
disabledNicht benutzbar und wird nicht gesendet
readonlyNicht bearbeitbar, wird aber gesendet
autocompleteWas automatisch ausgefüllt wird: email, name, current-password, one-time-code, off
min, max, stepGrenzen für Zahlen, Bereiche, Datum und Uhrzeit
minlength, maxlengthLängengrenzen für Texttypen
patternEin regulärer Ausdruck, auf den der ganze Wert passen muss
inputmodeWelche Handytastatur erscheint: numeric, decimal, email, tel, url
listDie id einer <datalist>
multipleMehrere Werte, bei email und file
acceptDateitypen bei file

Häufige Fehler

  • type="number" für Telefonnummern, Postleitzahlen oder Kartennummern. Das sind keine Mengen. Nimm tel oder text mit inputmode="numeric".
  • Ein Preisfeld ohne step="0.01". Dezimalwerte fallen durch die Validierung.
  • placeholder als Label verwenden. Es verschwindet, sobald der Leser tippt.
  • Sich für die Sicherheit auf accept oder type="email" verlassen. Sie dienen der Bequemlichkeit; der Server prüft erneut.
  • type="month" oder type="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.

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S