2015-05-05 5 views
24

Kürzlich bin ich auf ein Problem gestoßen, bei dem ich die automatische Vervollständigung in allen Browsern deaktivieren wollte.Autocomplete aus vs falsch?

Chrome hat eine neue Funktion in Einstellungen, wo Sie eine Kartennummer hinzufügen können. Und die Anforderung war, das auch zu deaktivieren.

Was in allen Browsern funktionierte, war diese Autocomplete = false auf Formularebene zu tun.

Aber dies ist nicht kompatibel mit W3-Regeln, wo sie autocomplete = off | on erzwingen.

Kann mir bitte jemand erklären, warum funktioniert in allen Browsern falsch?

sogar ie8, alle firefox, Safari usw. Aber ist nicht konform.

Antwort

11

Sie haben Recht. Wenn Sie das Autocomplete-Attribut auf "Aus" setzen, wird die Chrome-Autofill-Funktion in neueren Versionen von Chrome nicht deaktiviert.

Sie können Autocomplete jedoch auf alles außer "An" oder "Aus" ("False", "True", "NoFill") setzen und Chrome AutoFill deaktivieren.

Dieses Verhalten ist wahrscheinlich, weil das Autocomplete-Attribut entweder einen "Ein" oder "Aus" -Wert erwartet und nichts tut, wenn Sie etwas anderes geben. Wenn Sie also etwas anderes als diese Werte angeben, fällt AutoFill aus/tut nichts.

Mit der aktuellen Version von Chrome wurde festgestellt, dass das Autocomplete-Attribut jetzt auf "off" gesetzt wird.

Auch habe ich festgestellt, dass dies nur funktioniert, wenn Sie das Autocomplete-Attribut in jedem <input> Tag des Formulars festlegen.

Es gab eine Antwort auf diese Mehrdeutigkeit in der Chromium-Bug-Liste here.

Haftungsausschluss: Diese wurde um wahr zu sein in Chrome-Version 47.0.2526.106 (64-Bit)

+5

Leider funktioniert diese Lösung nicht mehr – pauel

+0

@pauel Ich habe Schwierigkeiten, das Verhalten zu replizieren, wenn diese Lösung nicht funktioniert. Könnten Sie ein Beispiel posten, wo dies nicht funktioniert? – camiblanch

+0

Ich finde, dass "falsch" nicht funktioniert, aber "aus" tut. Ich verwende Chrome 46.0.2490.71 –

-3

Als Ergänzung zu @camiblanch Antwort

Hinzufügen autocomplete="off"is not gonna cut it.
ändern input type-Attribut auf type="search" gefunden.
Google wendet die automatische Füllung nicht auf Eingaben mit einem Suchtyp an.

+4

Sie sollten die Suche nach nicht suchen nicht verwenden. – Andy

+1

@Andy warum nicht? sich darum kümmern, welche schrecklichen Dinge passieren werden? Oder Sie dachten nur, dass Sie durch diesen Downvote klug aussehen werden? –

+1

Sie können Suchfelder nicht als Ersatz für Textfelder verwenden. Sie sehen auf Safari sogar anders aus. Sie sehen aus wie Suchfelder mit abgerundeten Ecken und Reset-Taste. – Andy

0

Verwenden der automatischen Vervollständigung "my-Feld-name" statt zur automatischen Vervollständigung = "off". Sei vorsichtig, wie du es nennst, da einige Werte immer noch wie Autocomplete = "country" erkannt werden. Ich fand auch, dass die Verwendung des Platzhalterattributs in einigen kniffligen Szenarien half.

Beispiel: <input type="text" name="field1" autocomplete="my-field-name1" placeholder="Enter your name">

Chrome gestoppt kürzlich zur automatischen Vervollständigung mit = „off“ weil sie dachten, es von den Entwicklern überstrapaziert wurde, die nicht viel in gebracht hat gedacht, ob die Form autocopmlete sollte .Daher haben sie die alte Methode herausgenommen und uns dazu gezwungen, eine neue zu verwenden, um sicherzustellen, dass sie nicht automatisch vervollständigt wird.

+0

Haben Sie irgendwelche Links zu Zitaten/Artikeln/Diskussionen dazu? – Jacob

+0

Macht nichts, fand es: https://bugs.chromium.org/p/chromium/issues/detail?id=468153#c164 – Jacob

0
$("#selector").attr("autocomplete", "randomString"); 

Dies hat zuverlässig jedes Mal für mich gearbeitet.

Hinweis: Ich habe diese LOC auf Modal Show-Ereignis aufgerufen.