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

0voto

Milan Tenk Punkte 2165

2021 September Antwort

Da ich mit diesem Problem umgehen musste, war die einzige stabile Lösung, jedes Mal, wenn die Website gerendert wird, eine zufällige Zeichenfolge für das Name- und Autocomplete-Attribut in den -Elementen zu generieren.

Ein einfaches Beispiel dafür, wie dies mit reinem JavaScript funktioniert, finden Sie unten.

Html:

     Autofill deaktiviert mit zufälliger Zeichenfolge

         Vorname

         Nachname

         Stadt

         Straße

         Postleitzahl

JavaScript:

const randomString = (Math.random() + 1).toString(36).substring(5);
const disableAutoFillForm = document.getElementById('disable-autofill-form');
const disableAutoFillFormInputs = [
  ...disableAutoFillForm.getElementsByTagName('input'),
];
disableAutoFillFormInputs.forEach((input) => {
  input.setAttribute('autocomplete', randomString);
  input.setAttribute('name', randomString);
});

Ein Stackblitz-Projekt zum Ausprobieren finden Sie hier.

0voto

sumanta.k Punkte 477

Im Grunde können wir das Autocomplete aus jedem Textfeld von Chrome, Firefox oder jeder Art von Browser entfernen. Es ist einfach JavaScript.

window.onload=function(){                                              
        setTimeout(function(){  
            document.getElementById('benutzername').value = '';
            document.getElementById('passwort').value = '';
        },100);
    }  

Wenn Ihr Fenster fertig geladen ist, werden nach 100 Millisekunden unsere Benutzername- und Passwortfelder gelöscht. Ich denke, das ist der beste Weg, um das Autocomplete in allen Browsern zu deaktivieren (besonders für Chrome).

0voto

Mike Rockétt Punkte 8818

Ich habe gerade folgendes ausprobiert und es scheint im Chrome 53 zu funktionieren - es deaktiviert auch das Dropdown-Menü "Passwort verwenden für:", wenn man das Passwort eingibt.

Setzen Sie einfach den Typ Ihres Passwortfelds auf text und fügen Sie dann den onfocus Handler (inline oder über jQuery/vanilla JS) hinzu, um den Typ auf password zu setzen:

onfocus="this.setAttribute('type','password')"

Oder noch besser:

onfocus="if(this.getAttribute('type')==='text') this.setAttribute('type','password')"

0voto

ITinARRAY Punkte 27

Fügen Sie das direkt nach dem Formular-Tag hinzu:

Fügen Sie dies Ihrer CSS-Datei hinzu:

.div-form{
opacity: 0;
}

0voto

alex025 Punkte 173

Ich habe eine weitere Lösung gefunden - maskiere einfach die Zeichen in deinen autocomplete="off" Eingaben mit style="-webkit-text-security: disc;". Du kannst es auch zu deinen CSS-Regeln hinzufügen, beispielsweise auf folgende Weise:

[autocomplete="off"] {
  -webkit-text-security: disc;
}

Das Hauptziel ist es, das type="password" oder ein ähnliches Attribut vom Element zu entfernen.

Zumindest funktioniert diese Lösung bis zum 2021-01-24...

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