<input type="password">

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.

<input>-Elemente vom Typ password ermöglichen es dem Benutzer, ein Passwort sicher einzugeben.

Das Element wird als einzeiliges, einfaches Texteditor-Kontrollfeld angezeigt, in dem der Text so verdeckt wird, dass er nicht gelesen werden kann. Dies geschieht normalerweise, indem jedes Zeichen durch ein Symbol wie das Sternchen ("*") oder einen Punkt ("•") ersetzt wird. Dieses Zeichen variiert abhängig vom User-Agent und dem Betriebssystem.

Probieren Sie es aus

Das genaue Verhalten des Eingabeprozesses kann von Browser zu Browser unterschiedlich sein. Einige Browser zeigen das getippte Zeichen für einen kurzen Moment an, bevor es verdeckt wird, während andere dem Benutzer erlauben, die Anzeige des Klartexts ein- und auszuschalten. Beide Ansätze helfen einem Benutzer zu überprüfen, ob er das beabsichtigte Passwort eingegeben hat, was besonders auf mobilen Geräten schwierig sein kann.

Hinweis: Alle Formulare, die sensible Informationen wie Passwörter beinhalten (zum Beispiel Anmeldeformulare), sollten über HTTPS bereitgestellt werden. Viele Browser implementieren mittlerweile Mechanismen, um vor unsicheren Anmeldeformularen zu warnen; siehe Unsichere Passwörter.

Wert

Das value-Attribut enthält eine Zeichenfolge, deren Wert der aktuelle Inhalt der zur Eingabe des Passworts verwendeten Textbearbeitungskontrolle ist. Wenn der Benutzer noch nichts eingegeben hat, ist dieser Wert eine leere Zeichenkette (""). Wenn die required-Eigenschaft festgelegt ist, muss das Passwort-Eingabefeld einen Wert enthalten, der nicht leer ist, um gültig zu sein.

Wenn das pattern-Attribut angegeben ist, wird der Inhalt einer Passwortkontrolle nur dann als gültig betrachtet, wenn der Wert die Validierung besteht; siehe Validierung für weitere Informationen.

Hinweis: Die Zeichen Zeilenumbruch (U+000A) und Wagenrücklauf (U+000D) sind in einem password-Wert nicht erlaubt. Beim Setzen des Wertes einer Passwortkontrolle werden Zeilenumbruch- und Wagenrücklaufzeichen aus dem Wert entfernt.

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 Passwort-Feldeinträge die folgenden Attribute.

Hinweis: Das globale Attribut autocorrect kann zu Passworteingaben hinzugefügt werden, aber der gespeicherte Zustand ist immer off.

maxlength

Die maximale Zeichenlänge (gemessen in UTF-16-Code-Einheiten), die der Benutzer in das Passwortfeld eingeben kann. Dies muss ein ganzzahliger Wert von 0 oder höher sein. Wenn kein maxlength angegeben ist oder ein ungültiger Wert angegeben wird, hat das Passwortfeld keine maximale Länge. Dieser Wert muss auch größer oder gleich dem Wert von minlength sein.

Die Eingabe schlägt bei Constraints-Validierung fehl, wenn die Länge des in das Feld eingegebenen Textes länger als maxlength UTF-16-Code-Einheiten ist. Constraints-Validierung wird nur angewendet, wenn der Wert vom Benutzer geändert wird.

minlength

Die minimale Zeichenlänge (gemessen in UTF-16-Code-Einheiten), die der Benutzer in das Passwort-Eingabefeld eingeben kann. Dies muss ein nicht-negativer ganzzahliger Wert sein, der kleiner oder gleich dem durch maxlength angegebenen Wert ist. Wenn kein minlength angegeben ist oder ein ungültiger Wert angegeben wird, hat das Passwortfeld keine Mindestlänge.

Die Eingabe scheitert bei Constraints-Validierung, wenn die Länge des in das Feld eingegebenen Textes kürzer als minlength UTF-16-Code-Einheiten ist. Constraints-Validierung wird nur angewendet, wenn der Wert vom Benutzer geändert wird.

pattern

Das pattern-Attribut, wenn angegeben, ist ein regulärer Ausdruck, den der value der Eingabe erfüllen muss, um die Constraints-Validierung zu bestehen. Es muss ein gültiger JavaScript- regulärer Ausdruck sein, wie er vom RegExp-Typ verwendet wird und in unserem Leitfaden zu regulären Ausdrücken dokumentiert ist; das 'u'-Flag wird beim Kompilieren des regulären Ausdrucks festgelegt, so dass das Muster als eine Folge von Unicode-Codepunkten behandelt wird, anstatt als ASCII. Um das Muster herum sollten keine Schrägstriche angegeben werden.

Wenn das angegebene Muster nicht angegeben ist oder ungültig ist, wird kein regulärer Ausdruck angewendet und dieses Attribut vollständig ignoriert.

Hinweis: Verwenden Sie das title-Attribut, um Text anzugeben, den die meisten Browser als Tooltip anzeigen, um zu erklären, welche Anforderungen das Muster erfüllen muss. Sie sollten auch andere erklärende Texte in der Nähe hinzufügen.

Der Einsatz eines Musters wird für Passworteingaben dringend empfohlen, um sicherzustellen, dass gültige Passwörter mit einer breiten Auswahl an Zeichenklassen von Ihren Benutzern ausgewählt und verwendet werden. Mit einem Muster können Sie Groß- und Kleinschreibung regeln, die Verwendung einer bestimmten Anzahl von Ziffern und/oder Satzzeichen verlangen und so weiter. Siehe den Abschnitt Validierung für Details und ein Beispiel.

placeholder

Das placeholder-Attribut ist eine Zeichenkette, die einen kurzen Hinweis darauf gibt, welche Art von Informationen erwartet werden. Es sollte ein Wort oder ein kurzer Satz sein, der den erwarteten Datentyp demonstriert, anstatt eine erklärende Nachricht zu liefern. Der Text darf keine Wagenrückläufe oder Zeilenumbrüche enthalten.

Wenn der Inhalt des Steuerelements eine Richtung hat (LTR oder RTL), der Platzhalter jedoch in der entgegengesetzten Richtung angezeigt werden muss, können Sie Unicode-Bidi-Algorithmus-Formatierungszeichen verwenden, um die Richtung innerhalb des Platzhalters zu überschreiben; siehe Anleitung zur Verwendung von Unicode-Steuerelementen für bidirektionalen Text für weitere Informationen.

Hinweis: Vermeiden Sie die Verwendung des placeholder-Attributs, wenn Sie können. 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>-Labels 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 von JavaScript-Code geändert werden, der den Wert der HTMLInputElement.value-Eigenschaft direkt setzt.

Hinweis: Da ein schreibgeschütztes Feld keinen Wert haben kann, hat required keine Auswirkung auf Eingaben mit dem ebenfalls angegebenen Attribut readonly.

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, könnte dies ungenau sein und sollte nicht darauf verlassen werden; das resultierende Eingabefeld kann je nach Zeichen und Schriftart (font-Einstellungen, die verwendet werden) schmaler oder breiter als die angegebene Anzahl von Zeichen sein.

Dies setzt keine Begrenzung, wie viele Zeichen der Benutzer in das Feld eingeben kann. Es gibt nur an, wie viele ungefähr gleichzeitig gesehen werden können. Um eine obere Grenze für die Länge der Eingabedaten festzulegen, verwenden Sie das maxlength-Attribut.

Verwendung von Passwort-Eingaben

Passwort-Eingabefelder funktionieren im Allgemeinen genauso wie andere textuelle Eingabefelder; der Hauptunterschied besteht darin, den Inhalt so zu verdecken, dass Personen in der Nähe des Benutzers das Passwort nicht lesen können.

Eine grundlegende Passwort-Eingabe

Hier sehen wir die grundlegendste Passwort-Eingabe mit einem Label, das mithilfe des <label>-Elements erstellt wurde.

html
<label for="userPassword">Password: </label>
<input id="userPassword" type="password" />

Autovervollständigung ermöglichen

Um dem Passworteingangsmanager des Benutzers zu erlauben, das Passwort automatisch einzugeben, geben Sie das autocomplete-Attribut an. Für Passwörter sollte dies typischerweise einer der folgenden Werte sein:

on

Erlaubt dem Browser oder einem Passwort-Manager, das Passwortfeld automatisch auszufüllen. Dies ist nicht so informativ wie die Verwendung entweder current-password oder new-password.

off

Erlaubt dem Browser oder einem Passwort-Manager nicht, das Passwortfeld automatisch auszufüllen. Beachten Sie, dass einige Software dieses Wert ignoriert, da er typischerweise die Fähigkeit der Nutzer, sichere Passwortpraktiken beizubehalten, beeinträchtigt.

current-password

Erlaubt dem Browser oder einem Passwort-Manager, das aktuelle Passwort für die Website einzugeben. Dies bietet mehr Informationen als on, da es dem Browser oder Passwort-Manager ermöglicht, das momentan bekannte Passwort für die Website automatisch in das Feld einzugeben, es jedoch nicht erlaubt, ein neues vorzuschlagen.

new-password

Erlaubt dem Browser oder einem Passwort-Manager, ein neues Passwort für die Website automatisch zu erzeugen; dies wird auf Passwortänderungs- und New User-Formularen in dem Feld verwendet, in dem der Benutzer nach einem neuen Passwort gefragt wird. Das neue Passwort kann je nach dem verwendeten Passwort-Manager auf verschiedene Weise generiert werden. Es könnte ein neues vorgeschlagenes Passwort ausfüllen oder dem Benutzer eine Schnittstelle zur Erstellung eines solchen anbieten.

html
<label for="userPassword">Password:</label>
<input id="userPassword" type="password" autocomplete="current-password" />

Das Passwort obligatorisch machen

Um dem Browser des Benutzers mitzuteilen, dass das Passwortfeld einen gültigen Wert haben muss, bevor das Formular abgeschickt werden kann, geben Sie das boolesche required-Attribut an.

html
<label for="userPassword">Password: </label>
<input id="userPassword" type="password" required />
<input type="submit" value="Submit" />

Einen Eingabemodus angeben

Wenn Ihre empfohlenen (oder erforderlichen) Passwortsyntax-Regeln von einer alternativen Texteingabeschnittstelle als der Standardtastatur profitieren würden, können Sie das inputmode-Attribut verwenden, um eine bestimmte anzufordern. Der offensichtlichste Anwendungsfall hierfür ist, wenn das Passwort numerisch sein muss (z. B. eine PIN). Mobile Geräte mit virtuellen Tastaturen könnten zum Beispiel auf ein numerisches Tastaturdesign anstelle einer vollständigen Tastatur umschalten, um das Eingeben des Passworts zu erleichtern. Wenn die PIN für die einmalige Verwendung gedacht ist, setzen Sie das autocomplete-Attribut entweder auf off oder one-time-code, um vorzuschlagen, dass es nicht gespeichert wird.

html
<label for="pin">PIN: </label>
<input id="pin" type="password" inputmode="numeric" />

Längenanforderungen festlegen

Wie üblich können Sie die minlength- und maxlength-Attribute verwenden, um die minimal und maximal akzeptablen Längen für das Passwort festzulegen. Dieses Beispiel erweitert das vorherige, indem es festlegt, dass die PIN des Benutzers mindestens vier und höchstens acht Ziffern lang sein muss. Das size-Attribut wird verwendet, um sicherzustellen, dass die Passwort-Eingabesteuerung acht Zeichen breit ist.

html
<label for="pin">PIN:</label>
<input
  id="pin"
  type="password"
  inputmode="numeric"
  minlength="4"
  maxlength="8"
  size="8" />

Text auswählen

Wie bei anderen textuellen Eingabesteuerungen können Sie die select()-Methode verwenden, um den gesamten Text im Passwortfeld auszuwählen.

HTML

html
<label for="userPassword">Password: </label>
<input id="userPassword" type="password" size="12" />
<button id="selectAll">Select All</button>

JavaScript

js
document.getElementById("selectAll").onclick = () => {
  document.getElementById("userPassword").select();
};

Ergebnis

Sie können auch selectionStart und selectionEnd verwenden, um (oder setzen) den aktuell ausgewählten Bereich von Zeichen in der Kontrolle zu erhalten, sowie selectionDirection, um zu wissen, in welche Richtung die Auswahl stattgefunden hat (oder erweitert wird, abhängig von Ihrer Plattform; siehe dessen Dokumentation für eine Erklärung). Allerdings ist der Nutzen dieser Funktionen angesichts des verschleierten Textes etwas eingeschränkt.

Validierung

Wenn Ihre Anwendung Zeichensatzbeschränkungen oder andere Anforderungen an den tatsächlichen Inhalt des eingegebenen Passworts hat, können Sie das pattern-Attribut verwenden, um einen regulären Ausdruck festzulegen, der verwendet wird, um automatisch sicherzustellen, dass Ihre Passwörter diese Anforderungen erfüllen.

In diesem Beispiel sind nur Werte mit mindestens vier und höchstens acht hexadezimalen Ziffern gültig.

html
<label for="hexId">Hex ID: </label>
<input
  id="hexId"
  type="password"
  pattern="[0-9a-fA-F]{4,8}"
  title="Enter an ID consisting of 4-8 hexadecimal digits"
  autocomplete="new-password" />

Beispiele

Anfrage nach einer Sozialversicherungsnummer

Dieses Beispiel akzeptiert nur Eingaben, die dem Format für eine gültige Sozialversicherungsnummer der Vereinigten Staaten entsprechen. Diese Nummern, die in den USA zu Steuer- und Identifikationszwecken verwendet werden, haben das Format "123-45-6789". Es gibt verschiedene Regeln darüber, welche Werte in jeder Gruppe erlaubt sind.

HTML

html
<label for="ssn">SSN:</label>
<input
  type="password"
  id="ssn"
  inputmode="numeric"
  minlength="9"
  maxlength="12"
  pattern="(?!000)([0-6]\d{2}|7([0-6]\d|7[012]))([ -])?(?!00)\d\d\3(?!0000)\d{4}"
  required
  autocomplete="off" />
<br />
<label for="ssn">Value:</label>
<span id="current"></span>

Dieses Beispiel verwendet ein pattern, das den eingegebenen Wert auf Zeichenfolgen beschränkt, die gesetzliche Sozialversicherungsnummern darstellen. Natürlich garantiert dieser reguläre Ausdruck keine gültige SSN (da wir keinen Zugang zur Datenbank der Sozialversicherungsverwaltung haben), stellt jedoch sicher, dass die Nummer eine sein könnte; er vermeidet generell Werte, die nicht gültig sein können. Darüber hinaus erlaubt er, dass die drei Gruppen von Ziffern durch ein Leerzeichen, einen Bindestrich ("-") oder nichts getrennt werden.

Der inputmode ist auf numeric gesetzt, um Geräte mit virtuellen Tastaturen zu ermutigen, auf ein numerisches Tastaturlayout zur einfacheren Eingabe zu wechseln. Die minlength- und maxlength-Attribute sind auf 9 bzw. 12 gesetzt, um sicherzustellen, dass der Wert mindestens neun und höchstens 12 Zeichen lang ist (zuerst ohne Trennzeichen zwischen den Gruppen von Ziffern und letzteres mit ihnen). Das required-Attribut wird verwendet, um anzugeben, dass diese Kontrolle einen Wert haben muss. Schließlich ist autocomplete auf off gesetzt, um zu verhindern, dass Passwort-Manager und Sitzungswiederherstellungsfunktionen versuchen, seinen Wert zu setzen, da dies gar kein Passwort ist.

JavaScript

Das JavaScript zeigt die eingegebene SSN auf dem Bildschirm an, damit Sie sie sehen können. Dies unterminiert den Zweck eines Passwortfelds, hilft jedoch, das pattern auszuprobieren.

js
const ssn = document.getElementById("ssn");
const current = document.getElementById("current");

ssn.oninput = (event) => {
  current.textContent = ssn.value;
};

Ergebnis

Technische Zusammenfassung

Wert Ein String, der ein Passwort darstellt, oder leer
Ereignisse [`change`](/de/docs/Web/API/HTMLElement/change_event) und [`input`](/de/docs/Web/API/Element/input_event)
Unterstützte allgemeine Attribute autocomplete, inputmode, maxlength, minlength, pattern, placeholder, readonly, required, und size
IDL-Attribute selectionStart, selectionEnd, selectionDirection, und 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 keine entsprechende Rolle

Spezifikationen

Specification
HTML Standard
# password-state-(type=password)

Browser-Kompatibilität

BCD tables only load in the browser