Ab Chrome 42 funktionieren keine der Lösungen/Hacks in diesem Thread (Stand: 2015-05-21T12:50:23+00:00
) für das Deaktivieren der Autovervollständigung für ein einzelnes Feld oder das gesamte Formular.
BEARBEITEN: Ich habe festgestellt, dass Sie tatsächlich nur ein Dummy-E-Mail-Feld in Ihr Formular einfügen müssen (Sie können es mit display: none
verstecken), bevor Sie die anderen Felder einfügen, um die Autovervollständigung zu verhindern. Ich nehme an, dass Chrome mit jedem autovervollständigten Feld eine Art Formularsignatur speichert und das Hinzufügen eines weiteren E-Mail-Felds diese Signatur beschädigt und die Autovervollständigung verhindert.
Die gute Nachricht ist, dass da die "Formularsignatur" durch dies beschädigt wird, keines der Felder autovervollständigt wird, daher wird kein JavaScript benötigt, um die Dummy-Felder vor dem Absenden zu leeren.
Alte Antwort:
Das Einzige, was ich noch als praktikabel gefunden habe, ist das Einfügen von zwei Dummy-Feldern des Typs E-Mail und Passwort vor den echten Feldern. Sie können sie auf display: none
setzen, um sie zu verstecken (es ist nicht klug genug, um diese Felder zu ignorieren):
Leider müssen die Felder innerhalb Ihres Formulars sein (sonst werden beide Eingabesätze autovervollständigt). Damit die Dummy-Felder wirklich ignoriert werden, benötigen Sie etwas JS, das beim Absenden des Formulars ausgeführt wird, um sie zu leeren:
form.addEventListener('submit', function() {
form.elements['fake_email'].value = '';
form.elements['fake_password'].value = '';
});
Beachten Sie von oben, dass das Löschen des Werts mit Javascript funktioniert, um die Autovervollständigung zu überschreiben. Wenn der Verlust des ordnungsgemäßen Verhaltens bei deaktiviertem JS akzeptabel ist, können Sie dies alles mit einem JS-Autovervollständigungs-"Polyfill" für Chrome vereinfachen:
(function(document) {
function polyfillAutocomplete(nodes) {
for(var i = 0, length = nodes.length; i < length; i++) {
if(nodes[i].getAttribute('autocomplete') === 'off') {
nodes[i].value = '';
}
}
}
setTimeout(function() {
polyfillAutocomplete(document.getElementsByTagName('input'));
polyfillAutocomplete(document.getElementsByTagName('textarea'));
}, 1);
})(window.document);
17 Stimmen
Technisch wurde diese Frage etwa 5 Monate vor der als "Diese Frage hat hier bereits eine Antwort" bezeichneten Frage gestellt. Diese Frage ist das Duplikat, da sie nach dieser gestellt wurde.
0 Stimmen
Ehrlich gesagt, was wenn das der Grund für das Deaktivieren von autocomplete=off ist. Was ist, wenn der Plan ist, sicherzustellen, dass das Web so detailliert und beschrieben ist, dass der Browser, den Sie gerade verwenden, jedes Feld automatisch ausfüllen kann, wie es ihre neueste Version möchte. Wenn das der Fall wäre, müssten wir alle Felder beschreiben - und der Browser würde das automatische Ausfüllen für alle Felder deaktivieren, die außerhalb des Bereichs des Autocomplete-Skripts/Apps liegen... Ich wette darauf, dass dies der Fall ist.
87 Stimmen
7 Jahre und immer noch können wir die automatische Vervollständigung nicht richtig deaktivieren... so eine Schande...
0 Stimmen
@user3071434 und diese Antwort ist nutzlos, weil sie nicht funktioniert.
3 Stimmen
Ich habe hier eine Erklärung gefunden developer.mozilla.org/en-US/docs/Web/Security/…
0 Stimmen
Versuchen Sie github.com/terrylinooo/disableautofill.js
0 Stimmen
Ich hasse Websites, die es meinem Browser nicht erlauben, die automatische Vervollständigung zu verwenden.
2 Stimmen
Siehe bugs.chromium.org/p/chromium/issues/detail?id=370363#c7 Link, der empfiehlt, autocomplete="new-password" zu verwenden.
0 Stimmen
Wollte nicht noch eine weitere "Antwort" zu all dem hinzufügen, deshalb werde ich nur kommentieren, aber nachdem ich so viele Lösungen für unseren Vue.js-App-Suchfilter ausprobiert habe, habe ich mich für dies entschieden, weil Chrome dies zu respektieren scheint:
0 Stimmen
Bis zum 31.12.2022 scheint die Lösung "new-password" in Chromium-basierten Browsern für alle registrierten Formulardaten anpassbar zu sein: Wenn Sie z.B. autocomplete="new-user-street-address-email-password-phone" als Attribut zu Ihrem Formular hinzufügen, werden die entsprechenden Daten nicht automatisch ausgefüllt.