<input type="text">
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
<input>
Elemente vom Typ text
erstellen grundlegende einzeilige Textfelder.
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;
}
Wert
Das value
-Attribut ist eine Zeichenkette, die den aktuellen Wert des in das Textfeld eingegebenen Textes enthält. Sie können dies mit der HTMLInputElement
value
-Eigenschaft in JavaScript abrufen.
let theText = myTextInput.value;
Wenn keine Validierungsbeschränkungen für die Eingabe bestehen (siehe Validierung für weitere Details), kann der Wert eine leere Zeichenkette (""
) sein.
Zusätzliche Attribute
Zusätzlich zu den globalen Attributen und den Attributen, die auf alle <input>
Elemente unabhängig von ihrem Typ wirken, unterstützen Texteingaben die folgenden Attribute.
list
Die Werte des list
-Attributs sind die id
eines im selben Dokument befindlichen <datalist>
Elements. Das <datalist>
bietet eine Liste vorgegebener Werte, die dem Benutzer für diese Eingabe vorgeschlagen werden. Alle Werte in der Liste, die mit dem type
nicht kompatibel sind, werden nicht in die vorgeschlagenen Optionen einbezogen. Die angebotenen Werte sind Vorschläge und keine Anforderungen: Benutzer können aus dieser vorgegebenen Liste auswählen oder einen anderen Wert eingeben.
maxlength
Die maximale Zeichenlänge (gemessen in UTF-16-Codeeinheiten), die der Benutzer in die text
-Eingabe eingeben kann. Dieser muss ein Ganzzahlwert von 0 oder höher sein. Wenn kein maxlength
angegeben ist oder ein ungültiger Wert angegeben wird, hat die text
-Eingabe keine maximale Länge. Dieser Wert muss auch größer oder gleich dem Wert von minlength
sein.
Die Eingabe schlägt bei der Einschränkungsvalidierung fehl, wenn die Länge des Textwertes des Feldes länger als maxlength
UTF-16-Codeeinheiten ist. Die Einschränkungsvalidierung wird nur angewendet, wenn der Wert vom Benutzer geändert wird.
minlength
Die minimale Zeichenlänge (gemessen in UTF-16-Codeeinheiten), die der Benutzer in die text
-Eingabe eingeben kann. Dieser muss ein nicht-negativer Ganzzahlwert sein, der kleiner oder gleich dem durch maxlength
angegebenen Wert ist. Wenn kein minlength
angegeben ist, oder ein ungültiger Wert angegeben wird, hat die text
-Eingabe keine Mindestlänge.
Die Eingabe schlägt bei der Einschränkungsvalidierung fehl, wenn die Länge des in das Feld eingegebenen Texts kürzer ist als minlength
UTF-16-Codeeinheiten. Die Einschränkungsvalidierung wird nur angewendet, wenn der Wert vom Benutzer geändert wird.
pattern
Das pattern
-Attribut ist ein regulärer Ausdruck, den der value
der Eingabe erfüllen muss, damit der Wert die Einschränkungsvalidierung besteht. Es muss ein gültiger regulärer Ausdruck in JavaScript sein, wie er vom RegExp
-Typ verwendet wird und in unserem Leitfaden zu regulären Ausdrücken dokumentiert ist. Das 'u'
-Flag wird angegeben, wenn der reguläre Ausdruck kompiliert wird, damit das Muster als Folge von Unicode-Codepunkten behandelt wird, anstatt als ASCII. Es sollten keine Schrägstriche um den Mustertext angegeben werden.
Wenn das angegebene Muster nicht angegeben ist oder ungültig ist, wird kein regulärer Ausdruck angewendet, und dieses Attribut wird vollständig ignoriert.
Hinweis:
Verwenden Sie das title
-Attribut, um einen Text anzugeben, der von den meisten Browsern als Tooltip angezeigt wird, um zu erklären, welche Anforderungen erfüllt werden müssen, damit das Muster passt. Sie sollten auch anderen erklärenden Text in der Nähe einfassen.
Siehe Eine Muster spezifizieren für weitere Details und ein Beispiel.
placeholder
Das placeholder
-Attribut ist eine Zeichenkette, die dem Benutzer einen kurzen Hinweis darauf gibt, welche Art von Information in das Feld erwartet wird. Es sollte ein Wort oder eine kurze Phrase sein, die den erwarteten Datentyp demonstriert, anstatt einer erklärenden Nachricht. Der Text darf nicht Zeilenumbrüche oder Zeilenabschlüsse enthalten.
Wenn der Inhalt des Controls eine Richtung (LTR) oder (RTL) hat, der Placeholder aber in der entgegengesetzten Richtung dargestellt werden muss, können Sie Unicode-Bidi-Formatierungszeichen verwenden, um die Richtung im Placeholder zu überschreiben; siehe How to use Unicode controls for bidi text für weitere Informationen.
Hinweis:
Vermeiden Sie, wenn möglich, die Verwendung des placeholder
-Attributs. Es ist nicht so semantisch nützlich wie andere Möglichkeiten, Ihr Formular zu erklären, und kann unerwartete technische Probleme mit Ihrem Inhalt verursachen. Siehe <input>
Zugänglichkeitsbedenken für weitere Informationen.
readonly
Ein boolesches Attribut, das, wenn es vorhanden ist, bedeutet, dass dieses Feld vom Benutzer nicht bearbeitet werden kann. Sein value
kann jedoch weiterhin durch direktes Setzen der HTMLInputElement
value
-Eigenschaft durch JavaScript-Code geändert werden.
Hinweis:
Da ein schreibgeschütztes Feld keinen Wert haben kann, hat required
keine Auswirkungen auf Eingaben mit dem ebenfalls angegebenen readonly
-Attribut.
size
Das size
-Attribut ist ein numerischer Wert, der angibt, wie viele Zeichen breit das Eingabefeld sein soll. Der Wert muss eine Zahl größer als null sein, und der Standardwert ist 20. Da Zeichenbreiten variieren, ist dies möglicherweise nicht exakt und sollte nicht darauf verlassen werden, dass es so ist; die resultierende Eingabe kann je nach Zeichen und Schriftart (font
-Einstellungen) schmaler oder breiter als die angegebene Anzahl von Zeichen sein.
Dies setzt keine Begrenzung darauf, wie viele Zeichen der Benutzer in das Feld eingeben kann. Es gibt nur an, wie viele Zeichen ungefähr gleichzeitig angezeigt werden können. Um ein oberes Limit für die Länge der Eingabedaten festzulegen, verwenden Sie das maxlength
-Attribut.
spellcheck
Das spellcheck
globale Attribut wird verwendet, um anzugeben, ob die Rechtschreibprüfung für ein Element aktiviert werden soll. Es kann für jeden bearbeitbaren Inhalt verwendet werden, aber hier betrachten wir spezifische Details zur Verwendung von spellcheck
auf <input>
-Elementen. Die erlaubten Werte für spellcheck
sind:
false
-
Deaktivieren Sie die Rechtschreibprüfung für dieses Element.
true
-
Aktivieren Sie die Rechtschreibprüfung für dieses Element.
""
(leere Zeichenkette) oder kein Wert-
Befolgen Sie das Standardverhalten des Elements für die Rechtschreibprüfung. Dies kann auf den
spellcheck
-Einstellungen eines Elternteils oder anderen Faktoren basieren.
Ein Eingabefeld kann die Rechtschreibprüfung aktivieren, wenn es nicht das readonly-Attribut hat und nicht deaktiviert ist.
Der Wert, der durch das Lesen von spellcheck
zurückgegeben wird, spiegelt möglicherweise nicht den tatsächlichen Zustand der Rechtschreibprüfung innerhalb einer Steuerung wider, wenn die Nutzeragenten-Präferenzen die Einstellung überschreiben.
Verwendung von Texteingaben
<input>
-Elemente vom Typ text
erstellen grundlegende, einzeilige Eingaben. Sie sollten diese überall verwenden, wo Sie möchten, dass der Benutzer einen einzeiligen Wert eingibt und kein speziellerer Eingabetyp für das Erfassen dieses Wertes verfügbar ist (beispielsweise, wenn es sich um ein Datum, URL, E-Mail oder Suchbegriff handelt, stehen bessere Optionen zur Verfügung).
Grundlegendes Beispiel
<form>
<div>
<label for="uname">Choose a username: </label>
<input type="text" id="uname" name="name" />
</div>
<div>
<button>Submit</button>
</div>
</form>
Dies wird folgendermaßen dargestellt:
Wenn gesendet, wird das Daten-Name/Wert-Paar an den Server gesendet als name=Chris
(wenn "Chris" als Eingabewert vor der Einreichung eingegeben wurde). Sie müssen daran denken, das name
-Attribut auf dem <input>
-Element einzuschließen, da sonst der Wert des Textfeldes nicht mit den gesendeten Daten berücksichtigt wird.
Platzhalter setzen
Sie können einen nützlichen Platzhalter in Ihrem Texteingabefeld bieten, der einen Hinweis darauf geben kann, was eingegeben werden soll, indem Sie das placeholder
-Attribut verwenden. Sehen Sie sich das folgende Beispiel an:
<form>
<div>
<label for="uname">Choose a username: </label>
<input
type="text"
id="uname"
name="name"
placeholder="Lower case, all one word" />
</div>
<div>
<button>Submit</button>
</div>
</form>
Sie können sehen, wie der Platzhalter unten dargestellt wird:
Der Platzhalter wird in der Regel in einer helleren Farbe als die Vordergrundfarbe des Elements dargestellt und verschwindet automatisch, wenn der Benutzer beginnt, Text in das Feld einzugeben (oder wann immer das Feld programmgesteuert durch Setzen seines value
-Attributs einen Wert erhält).
Physische Größe des Eingabeelements
Die physische Größe des Eingabefelds kann mit dem size
-Attribut gesteuert werden. Damit können Sie die Anzahl der Zeichen angeben, die das Textinput gleichzeitig anzeigen kann. Dies beeinflusst die Breite des Elements, sodass Sie die Breite in Zeichen, anstatt in Pixeln, angeben können. In diesem Beispiel zum Beispiel ist die Eingabe 30 Zeichen breit:
<form>
<div>
<label for="uname">Choose a username: </label>
<input
type="text"
id="uname"
name="name"
placeholder="Lower case, all one word"
size="30" />
</div>
<div>
<button>Submit</button>
</div>
</form>
Validierung
<input>
-Elemente vom Typ text
haben keine automatische Validierung, die auf sie angewendet wird (da eine einfache Texteingabe in der Lage sein muss, beliebige Zeichenfolgen zu akzeptieren), aber es gibt einige clientseitige Validierungsoptionen, die wir im Folgenden besprechen werden.
Hinweis: Die HTML-Formularvalidierung ist kein Ersatz für Serverskripte, die sicherstellen, dass die eingegebenen Daten im richtigen Format vorliegen. Es ist viel zu einfach für jemanden, Anpassungen am HTML vorzunehmen, die es ihm ermöglichen, die Validierung zu umgehen oder sie vollständig zu entfernen. Es ist auch möglich für jemanden, Ihr HTML vollständig zu umgehen und die Daten direkt an Ihren Server zu übermitteln. Wenn Ihr serverseitiger Code die empfangenen Daten nicht validiert, könnte ein Desaster passieren, wenn nicht richtig formatierte Daten (oder Daten, die zu groß sind, falschen Typs sind usw.) in Ihre Datenbank eingegeben werden.
Eine Anmerkung zur Gestaltung
Für die Gestaltung von Formularelementen, um dem Benutzer anzuzeigen, wann ihre Werte gültig oder ungültig sind, stehen nützliche Pseudoklassen zur Verfügung. Diese sind :valid
und :invalid
. In diesem Abschnitt verwenden wir das folgende CSS, das neben Eingaben mit gültigen Werten ein Häkchen (Tick) und neben Eingaben mit ungültigen Werten ein Kreuz (X) anzeigt.
div {
margin-bottom: 10px;
position: relative;
}
input + span {
padding-right: 30px;
}
input:invalid + span::after {
position: absolute;
content: "✖";
padding-left: 5px;
}
input:valid + span::after {
position: absolute;
content: "✓";
padding-left: 5px;
}
Die Technik erfordert auch, dass ein <span>
-Element nach dem Formularelement platziert wird, das als Halter für die Symbole dient. Dies war notwendig, da einige Input-Typen in einigen Browsern Symbole, die direkt nach ihnen platziert sind, nicht gut anzeigen.
Eingabe erforderlich machen
Sie können das required
-Attribut verwenden, um eine Eingabe vor der Formularübermittlung erforderlich zu machen:
<form>
<div>
<label for="uname">Choose a username: </label>
<input type="text" id="uname" name="name" required />
<span class="validity"></span>
</div>
<div>
<button>Submit</button>
</div>
</form>
Dies wird folgendermaßen dargestellt:
Wenn Sie versuchen, das Formular ohne eingetragenen Benutzernamen einzureichen, zeigt der Browser eine Fehlermeldung an.
Eingabewertlänge
Sie können eine Mindestlänge (in Zeichen) für den eingegebenen Wert mit dem minlength
-Attribut festlegen; ähnlich können Sie das maxlength
-Attribut verwenden, um die maximale Länge des eingegebenen Wertes in Zeichen festzulegen.
Das Beispiel unten erfordert, dass der eingegebene Wert eine Länge von 4 bis 8 Zeichen hat.
<form>
<div>
<label for="uname">Choose a username: </label>
<input
type="text"
id="uname"
name="name"
required
size="10"
placeholder="Username"
minlength="4"
maxlength="8" />
<span class="validity"></span>
</div>
<div>
<button>Submit</button>
</div>
</form>
Dies wird folgendermaßen dargestellt:
Wenn Sie versuchen, das Formular mit weniger als 4 Zeichen einzureichen, erhalten Sie eine entsprechende Fehlermeldung (die sich zwischen den Browsern unterscheidet). Wenn Sie versuchen, mehr als 8 Zeichen einzugeben, lässt der Browser dies nicht zu.
Hinweis:
Wenn Sie eine minlength
angeben, aber keine required
-Attribute, wird die Eingabe als gültig betrachtet, da der Benutzer nicht verpflichtet ist, einen Wert anzugeben.
Ein Muster angeben
Sie können das pattern
-Attribut verwenden, um einen regulären Ausdruck anzugeben, den der eingegebene Wert erfüllen muss, um als gültig angesehen zu werden (siehe Validierung mit regulären Ausdrücken für einen Schnellkurs zur Verwendung von regulären Ausdrücken zur Validierung von Eingaben).
Das Beispiel unten schränkt den Wert auf 4–8 Zeichen ein und erfordert, dass er nur Kleinbuchstaben enthält.
<form>
<div>
<label for="uname">Choose a username: </label>
<input
type="text"
id="uname"
name="name"
required
size="45"
pattern="[a-z]{4,8}" />
<span class="validity"></span>
<p>Usernames must be lowercase and 4-8 characters in length.</p>
</div>
<div>
<button>Submit</button>
</div>
</form>
Dies wird folgendermaßen dargestellt:
Beispiele
Gute Beispiele für die Verwendung von Texteingaben im Kontext finden Sie in unseren Artikeln Ihr erstes HTML-Formular und Wie man ein HTML-Formular strukturiert.
Technische Zusammenfassung
Wert | Eine Zeichenkette, die den Text im Textfeld darstellt. | |
Ereignisse | [`change`](/de/docs/Web/API/HTMLElement/change_event) und [`input`](/de/docs/Web/API/Element/input_event) | |
Unterstützte allgemeine Attribute |
autocomplete ,
list ,
maxlength ,
minlength ,
pattern ,
placeholder ,
readonly ,
required und
size
|
|
IDL-Attribute | list , value |
|
DOM-Schnittstelle | [`HTMLInputElement`](/de/docs/Web/API/HTMLInputElement) |
|
Methoden | [`select()`](/de/docs/Web/API/HTMLInputElement/select), [`setRangeText()`](/de/docs/Web/API/HTMLInputElement/setRangeText) und [`setSelectionRange()`](/de/docs/Web/API/HTMLInputElement/setSelectionRange). | |
Implizite ARIA-Rolle | ohne list -Attribut:
textbox |
mit list -Attribut: combobox |
Spezifikationen
Specification |
---|
HTML> # text-(type=text)-state-and-search-state-(type=search)> |
Browser-Kompatibilität
Loading…
Siehe auch
- HTML-Formulare
<input>
und dieHTMLInputElement
Schnittstelle, auf der es basiert.<input type="search">
<textarea>
: Mehrzeilige Texteingabe