728 Stimmen

Chrome ignoriert autocomplete="off"

Ich habe eine Webanwendung erstellt, die ein Tagbox-Dropdown verwendet. Dies funktioniert in allen Browsern gut, außer im Chrome-Browser (Version 21.0.1180.89).

Trotz des input-Feldes UND des form-Feldes mit dem Attribut autocomplete="off" besteht Chrome darauf, eine Dropdown-Verlaufsliste früherer Einträge für das Feld anzuzeigen, was die Tagbox-Liste auslöscht.

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...

5voto

Renato Lochetti Punkte 4440

Nach dem Chrome v. 34 funktioniert das Setzen von autocomplete="off" im

-Tag nicht mehr

Ich habe die Änderungen vorgenommen, um dieses nervige Verhalten zu vermeiden:

  1. Entfernen Sie das name und das id des Passwort-Eingabefelds
  2. Fügen Sie dem Eingabefeld eine Klasse hinzu (z.B.: passwordInput)

(Bislang speichert Chrome das Passwort nicht im Eingabefeld, aber das Formular ist jetzt defekt)

Schließlich, damit das Formular funktioniert, fügen Sie diesen Code ein, der ausgeführt wird, wenn der Benutzer auf die Senden-Schaltfläche klickt oder wann immer Sie das Formular auslösen möchten:

var sI = $(".passwordInput")[0];
$(sI).attr("id", "password");
$(sI).attr("name", "password");

In meinem Fall hatte ich id="password" name="password" im Passwort-Eingabefeld, also habe ich sie vor dem Auslösen der Übermittlung wieder hinzugefügt.

5voto

Drzewiecki Punkte 74

Ich habe es geschafft, die Autovervollständigung durch die Ausnutzung dieser Regel zu deaktivieren:

Felder, die keine Passwörter sind, aber ausgeblendet werden sollten, wie Kreditkartennummern, können auch das Attribut type="password" haben, aber das entsprechende Autocomplete-Attribut enthalten, wie "cc-number" oder "cc-csc". https://www.chromium.org/developers/design-documents/create-amazing-password-forms

Allerdings kommt es mit großer Verantwortung :)

Versuchen Sie nicht, die Passwortmanager des Browsers (entweder eingebaut oder extern) zu täuschen. Sie sind darauf ausgelegt, die Benutzererfahrung zu erleichtern. Das Einsetzen von Fake-Feldern, die Verwendung falscher Autocomplete-Attribute oder die Ausnutzung der Schwächen der bestehenden Passwortmanager führt einfach zu frustrierten Benutzern.

0 Stimmen

Jetzt werden CC-Vorschläge anstelle von anderen Formularvorschlägen angezeigt...

5voto

William Punkte 7758

Ich hatte ein ähnliches Problem, bei dem das Eingabefeld entweder einen Namen oder eine E-Mail akzeptiert hat. Ich habe autocomplete="off" gesetzt, aber Chrome hat trotzdem Vorschläge gemacht. Es stellte sich heraus, dass dies daran lag, dass der Platzhaltertext die Wörter "Name" und "E-Mail" enthielt.

Zum Beispiel

Ich habe es umgangen, indem ich ein Leerzeichen mit Nullbreite in die Wörter im Platzhaltertext eingefügt habe. Kein Chrome-Autocomplete mehr.

5voto

Basit Punkte 15018

Statt autocomplete="off" verwenden Sie autocomplete="false" ;)

von: https://stackoverflow.com/a/29582380/75799

5voto

yivo Punkte 3084

In Chrome 48+ verwende diese Lösung:

  1. Füge vor den echten Feldern Fake-Felder hinzu:

  2. Verstecke die Fake-Felder:

    .visually-hidden {
      margin: -1px;
      padding: 0;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      clip: rect(0, 0, 0, 0);
      position: absolute;
    }
  3. Du hast es geschafft!

Dies funktioniert auch für ältere Versionen.

0 Stimmen

@yivo Sieht so aus, als wäre der einzige Unterschied zwischen Ihrer und der ursprünglichen Antwort die !important-Tags, also habe ich sie hinzugefügt, aber es funktioniert immer noch nicht. dropbox.com/s/24yaz6ut7ygkoql/…

0 Stimmen

@MikePurcell Sie haben autocomplete="off" nicht auf dem form Tag. Versuchen Sie außerdem, gefälschte Eingaben sofort nach dem form Tag zu platzieren.

0 Stimmen

@Yivo: Habe deine Vorschläge ausprobiert, hat gut für das E-Mail-Feld funktioniert, jedoch erscheint immer noch ein Autofill-Dropdown für das Passwort-Feld. dropbox.com/s/5pm5hjtx1s7eqt3/…

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X