431 Stimmen

Gibt es eine W3C gültige Möglichkeit, die automatische Vervollständigung in einem HTML-Formular zu deaktivieren?

Bei Verwendung des xhtml1-transitional.dtd doctype, der eine Kreditkartennummer mit folgendem HTML-Code erfasst

<input type="text" id="cardNumber" name="cardNumber" autocomplete='off'/>

führt zu einer Warnung des W3C-Validators:

Es gibt kein Attribut "Autovervollständigen".

Gibt es eine W3C / Standards Weg zum Browser Auto-Vervollständigung auf sensible Felder in einem Formular zu deaktivieren?

23voto

Greg Punkte 306033

Wie wäre es, wenn Sie es mit JavaScript einstellen?

var e = document.getElementById('cardNumber');
e.autocomplete = 'off'; // Maybe should be false

Es ist nicht perfekt, aber Ihr HTML-Code wird gültig sein.

19voto

Malartre Punkte 1156

Ich schlage vor, alle 4 Arten von Eingaben zu erfassen:

$('form,input,select,textarea').attr("autocomplete", "off");

Referenz:

11voto

Totoche Punkte 119

Wenn Sie jQuery verwenden, können Sie etwas Ähnliches tun:

$(document).ready(function(){$("input.autocompleteOff").attr("autocomplete","off");});

und verwenden Sie die Klasse autocompleteOff dort, wo Sie es wünschen:

<input type="text" name="fieldName" id="fieldId" class="firstCSSClass otherCSSClass autocompleteOff" />

Wenn Sie möchten, dass ALLE Ihre Eingaben autocomplete=off können Sie diese einfach verwenden:

$(document).ready(function(){$("input").attr("autocomplete","off");});

8voto

Enigma Plus Punkte 1476

Eine andere Möglichkeit - die auch zur Sicherheit beiträgt - besteht darin, das Eingabefeld jedes Mal, wenn Sie es anzeigen, anders zu nennen: wie ein Captha. Auf diese Weise kann die Sitzung die einmalige Eingabe lesen, und die automatische Vervollständigung hat nichts mehr zu tun.

Nur eine Anmerkung zu rmeadors Frage, ob Sie in das Browser-Erlebnis eingreifen sollten: Wir entwickeln Kontaktmanagement- und CRM-Systeme, und wenn man die Daten anderer Leute in ein Formular eintippt, möchte man nicht, dass ständig die eigenen Daten vorgeschlagen werden.

Das funktioniert für unsere Bedürfnisse, aber dann können wir uns den Luxus leisten, den Benutzern zu sagen, dass sie sich einen anständigen Browser besorgen sollen:)

autocomplete='off'

8voto

Emilio Gort Punkte 3440

autocomplete="off" Dies sollte das Problem bei allen modernen Browsern beheben.

<form name="form1" id="form1" method="post" autocomplete="off"
   action="http://www.example.com/form.cgi">
  [...]
</form>

In den aktuellen Versionen der Gecko-Browser funktioniert das Attribut "Autovervollständigen" einwandfrei. Bei früheren Versionen, die bis zu Netscape 6.2 zurückreichen, funktionierte es mit der Ausnahme von Formularen mit "Adresse" und "Name"

Update

In einigen Fällen schlägt der Browser weiterhin Werte für die automatische Vervollständigung vor, auch wenn das Attribut für die automatische Vervollständigung auf "Aus" gesetzt ist. Dieses unerwartete Verhalten kann für Entwickler ziemlich rätselhaft sein. Der Trick, um die Nicht-Autovervollständigung wirklich zu erzwingen, ist dem Attribut eine zufällige Zeichenfolge zuweisen zum Beispiel:

autocomplete="nope"

Da es sich bei diesem Zufallswert nicht um einen valid one gibt der Browser auf.

Dokumentation

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