Signatur
Beschreibung
Die Eigenschaft autocomplete eines <form>-Elements spiegelt das gleichnamige HTML-Attribut wider. Sie legt den Standard für alle Formularsteuerelemente des Formulars fest, also ob der Browser zuvor eingegebene Werte vorschlagen oder automatisch einfügen darf.
Gültige Werte sind "on" und "off". Fehlt das Attribut oder enthält es einen ungültigen Wert, gibt die Eigenschaft "on" zurück (limitierte, bekannte Werte). Wird ein Wert geschrieben, setzt der Browser das Attribut entsprechend im DOM.
Einzelne Felder können den Formular-Standard mit ihrem eigenen autocomplete-Attribut überschreiben, z. B. autocomplete="email" oder autocomplete="new-password". Detaillierte Feldhinweise (Autofill-Tokens) gibt es nur an den Feldern selbst, nicht am Formular.
Typische Anwendungsfälle: Einmalcodes (OTP), Captcha-Felder, Suchmasken mit dynamischen Vorschlägen oder sensible Admin-Formulare, bei denen gespeicherte Eingaben stören oder ein Risiko darstellen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value | "on" | "off" | "on" | Neuer Wert beim Setzen der Eigenschaft. Andere Zeichenketten werden zwar ins Attribut geschrieben, beim Lesen aber als "on" interpretiert. |
Rückgabewert
"on" oder "off". Bei fehlendem oder ungültigem Attribut "on".Beispiele
Aktuellen Wert auslesen
// <form id="login" autocomplete="off">…</form>
const form = document.getElementById('login');
console.log(form.autocomplete);
// Formular ohne Attribut
const neu = document.createElement('form');
console.log(neu.autocomplete);
Autovervollständigung für ein OTP-Formular abschalten
const otpForm = document.querySelector('#otp-form');
otpForm.autocomplete = 'off';
// Das Attribut ist nun im DOM gesetzt
console.log(otpForm.getAttribute('autocomplete'));
Formular-Standard und Feld-Ausnahme kombinieren
const form = document.createElement('form');
form.autocomplete = 'off';
const email = document.createElement('input');
email.type = 'email';
email.name = 'email';
email.autocomplete = 'email'; // überschreibt den Formular-Standard
const code = document.createElement('input');
code.name = 'code';
code.autocomplete = 'one-time-code';
form.append(email, code);
document.body.append(form);
console.log(form.autocomplete, email.autocomplete, code.autocomplete);
Ungültige Werte werden normalisiert
const form = document.createElement('form');
form.autocomplete = 'nope';
console.log(form.getAttribute('autocomplete')); // Attribut roh
console.log(form.autocomplete); // normalisiert
// Wichtig · Fallstricke
- Kein Sicherheitsmechanismus: Viele Browser ignorieren
autocomplete="off"absichtlich bei Anmeldefeldern, damit Passwortmanager weiter funktionieren. Für Registrierungs- oder Passwortänderungs-Formulare verwendet man besserautocomplete="new-password"am Passwortfeld. "off"wirkt je nach Browser auf Autofill-Vorschläge und auf den Formularverlauf unterschiedlich. Chrome ignoriert den Wert teilweise bei Adress- und Zahlungsdaten.- Bei
"off"speichert der Browser Feldwerte meist nicht im Seiten-Cache (bfcache). Nach dem Zurück-Navigieren können Eingaben also leer sein. - Feld-Attribute haben Vorrang vor dem Formular-Standard. Ein Feld mit
autocomplete="on"in einem"off"-Formular wird wieder vervollständigt. - Die Eigenschaft wird von allen modernen Browsern unterstützt. Die Wirkung auf die Oberfläche legt aber jeder Browser selbst fest.