Funktionierender Workaround für autocomplete="off" in modernen Browsern


Datum: 22.02.2019 18:29

Viele Browser ignorieren in neueren Versionen das Attribut autocomplete="off" an Formularen und Eingabefeldern.
Diese Flag sollte eigentlich die Autovervollständigung und den Passwortmanagers des Browsers deaktivieren.

Laut Mozilla bietet sich autocomplete="new-password" als Alternative an.
Dieser Wert funktioniert in meiner Anwendung leider nicht in allen Fällen.

Ich habe Workarounds gefunden, wo Leute den Browser dazu gebracht haben, statt der richtigen Felder versteckte Felder, die nicht verwendet werden zu befüllen.

Das war mir jedoch zu hässlich. Deshalb habe ich einem Javascript Workaround geschrieben, der zwar immer noch recht unschön ist, aber nicht ganz so schlimm wie die Lösung mit den Hidden Fields.

Da meine Anwendung bereits fast 9 Jahre auf dem Buckel hat, sind die meisten Javascripts noch mit jQuery geschrieben. Moderne Javascript-Hipster mögen mir das bitte verzeihen. Der Code lässt sich aber leicht auf Vanilla Javascript portieren.

$(document).ready(function () {  
    // It seems like the autocomplete html attribute 
    // is broken in some modern browsers (Chrome)
    // This is an ugly workaround for that issue
    $("form input[autocomplete], form[autocomplete]").not(":disabled").prop("disabled", true);
    setTimeout(function () {
        $("form input[autocomplete], form[autocomplete] input").prop("disabled", false);
    }, 500);
});

Noch eine Sache:
Wenn ihr autocomplete="on" nutzen solltet, wird dieser Code die Auto-Vervollständigung ebenfalls deaktivieren.
Da ich in meinem Code autocomplete nur nutze, um die Autocompletion abzuschalten, die in den meisten Browsern sowieso per Default angeschalten ist, habe ich andere Fälle nicht implementiert.

Kommentare

Name: *  
Homepage:  
Email: *  

 Ich habe die Datenschutzerklärung zur Kenntnis genommen. Ich stimme zu, dass meine Angaben und Daten zur Beantwortung meiner Anfrage elektronisch erhoben und gespeichert werden. Hinweis: Sie können Ihre Einwilligung jederzeit für die Zukunft per E-Mail an daten-entfernen@deruli.de widerrufen.

Es sind bisher noch keine Kommentare zu diesem Artikel vorhanden.

Don't click this link