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

3voto

Rusty Punkte 589

2021 Antwort: Leider funktionieren nur widerlich hackige Lösungen. Meine Lösung besteht darin, am Ende des Namensattributs (z. B.

Sie müssen dann etwas serverseitiges hinzufügen, um die eingehende Post-Anfrage zu bereinigen. Zum Beispiel habe ich in NodeJS / Express einen Middleware hinzugefügt, der mit einem Regex-Befehl den Zahlenabschnitt aus der empfangenen Post-Anfrage entfernt. Meiner sieht so aus, aber ich denke, etwas sehr ähnliches wäre auch in anderen Sprachen verfügbar:

const cleanseAutosuggest = function (req, res, next) {
   for (const key in req.body) {
      if (key.match(/-\d+/)) {
         req.body[key.replace(/-\d+/, "")] = req.body[key];
         delete req.body[key];
      }
   }
   next();
};

app.post("/submit", cleanseAutosuggest, function (req, res, next) {
...
})

2voto

Sarwar Hasan Punkte 1483

Ich habe es auf eine andere Weise gelöst. Du kannst es versuchen.

// Mit jQuery
$(function(){                                               
    setTimeout(function(){
        $("input#passfld").attr("type","password");
    },10);
});

// oder in reinem JavaScript
 window.onload=function(){                                              
    setTimeout(function(){  
        document.getElementById('passfld').type = 'password';
    },10);
  }

2voto

user2241415 Punkte 51

Ich fand diese Lösung am passendsten:

function clearChromeAutocomplete()
{
// nicht möglich, probieren wir es: 
if (navigator.userAgent.toLowerCase().indexOf('chrome') >= 0) 
{
document.getElementById('adminForm').setAttribute('autocomplete', 'off'); 
setTimeout(function () {
        document.getElementById('adminForm').setAttribute('autocomplete', 'on'); 
}, 1500);
}
}

Es muss nach dem dom bereit geladen werden, oder nachdem das Formular gerendert wurde.

2voto

anshuman Punkte 3398

Nachdem alle Lösungen ausprobiert wurden, hier ist, was für Chrome-Version 45 zu funktionieren scheint, mit einem Formular, das ein Passwortfeld hat:

jQuery('document').ready(function(){
        //Zum Deaktivieren der Chrome-Autofill-Funktion
        jQuery( ":text" ).attr('autocomplete','pre'+Math.random(0,100000000));
 });

2voto

Faruk Feres Punkte 56

Für mich hat das Setzen von autocomplete="off" in Formularen und Eingabefeldern funktioniert. Aber es kann schwanken. Manchmal wird das Passwort vorgeschlagen oder eine gespeicherte Login+Passwort-Option angezeigt. Aber es wird nicht automatisch ausgefüllt.

Chrome Version: 81.0.4044.138

CodePen

  Login

  Passwort

Weitere Optionen:

  1. 'form'-Tag entfernen... oder es von 'div' zu 'form' ändern, bevor Sie es absenden.
  2. Mit JavaScript und einigen contentEditable="true"-Feldern könnten Sie Ihren Weg finden...

Normalerweise muss ich alle paar Monate einen anderen Workaround finden...

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