Gibt es eine gültige W3C-Methode zum Deaktivieren der automatischen Vervollständigung in einem HTML-Formular?
Bei der Verwendung der xhtml1-transitional.dtd
doctype, sammeln eine Kreditkartennummer mit dem folgenden HTML -
<input type="text" id="cardNumber" name="cardNumber" autocomplete='off'/>
moniert wird eine Warnung auf der W3C validator:
es gibt kein Attribut "autocomplete".
Ist es ein W3C /standards Weise zu deaktivieren, browser-auto-complete auf sensible Felder in einem Formular?
InformationsquelleAutor der Frage matt b | 2009-02-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein guter Artikel aus dem MDC, das erklärt die Probleme (und Lösungen) auf Formular-Autovervollständigung.
Microsoft veröffentlicht hat, die etwas ähnliches hier, wie gut.
Um ehrlich zu sein, wenn dieses etwas ist wichtig, um Ihre Benutzer, 'brechen', die standards in dieser Art und Weise geeignet scheint. Zum Beispiel, Amazon setzt die 'autocomplete' - Attribut etwas, und es scheint gut zu funktionieren.
Wenn Sie möchten, entfernen Sie die Warnung vollständig, können Sie JavaScript verwenden, anwenden des Attribut-Browser, die es unterstützen (IE und Firefox sind die wichtigen Browsern) mit
someForm.setAttribute( "autocomplete", "off" ); someFormElm.setAttribute( "autocomplete", "off" );
Schließlich, wenn Ihre Website ist über HTTPS, DH automatisch, schaltet die Auto-Vervollständigung (wie einige andere Browser, soweit ich weiß).
Update
Als dieser Antwort noch bekommt durchaus ein paar upvotes, ich wollte nur darauf hinweisen, dass in HTML5, können Sie die 'autocomplete' - Attribut in den Formular-element. Finden Sie die Dokumentation auf W3C.
InformationsquelleAutor der Antwort Nick Presta
Ich wäre sehr überrascht, wenn das W3C würde haben einen Weg vorgeschlagen, die Arbeit mit (X)HTML4. Die AutoVervollständigen-Funktion ist vollständig browser-basiert, und wurde in den letzten Jahren (auch nach dem HTML4-standard geschrieben wurde).
Wäre nicht überrascht, wenn HTML5 hätte, zwar.
Edit: Als ich dachte, HTML5 - erlaubt haben, dass Funktion. Definieren Sie Ihre Seite als HTML5, verwenden Sie die folgende doctype - (ich.e: setzen Sie diese ein, wie der erste text in Ihrem source-code). Beachten Sie, dass nicht alle Browser diesen standard unterstützen, wie es noch in der Entwurfs-form.
InformationsquelleAutor der Antwort Henrik Paul
HTML 4: Keine
HTML 5: ja
Referenz: W3
InformationsquelleAutor der Antwort RuudKok
Nein, ein guter Artikel ist hier in Mozila Wiki.
Ich würde weiterhin die ungültige
attribute
. Ich denke, das ist, wo Pragmatismus gewinnen sollte über die Validierung.InformationsquelleAutor der Antwort David Waters
Nein, aber browser-Autovervollständigung ist Häufig ausgelöst durch das Feld mit dem gleichen
name
Attribut als Felder, die zuvor ausgefüllt. Wenn Sie könnten rig bis ein cleverer Weg, um eine randomisierte Feld nameautocomplete nicht in der Lage sein, ziehen Sie alle zuvor eingegebenen Werte für das Feld.Wenn Sie geben ein input-Feld einen Namen wie "
email_<?= randomNumber() ?>
", und dann das script erhält diese Daten in einer Schleife durch die POST-oder GET-Variablen, die auf der Suche nach etwas passendem Muster "email_[some number]
", könnte man diese abziehen, und das hätte (fast) garantiertem Erfolg, unabhängig von browser.InformationsquelleAutor der Antwort Phantom Watson
Wie über die Einstellung, es mit JavaScript?
Es ist nicht perfekt, aber dein HTML-Code gültig.
InformationsquelleAutor der Antwort Greg
Schlage ich vor, fangen alle 4 Arten von input:
Referenz:
InformationsquelleAutor der Antwort Malartre
Wenn Sie jQuery verwenden, können Sie etwas tun :
und verwenden Sie die autocompleteOff Klasse, wo Sie wollen :
Wenn Sie möchten, dass ALLE Ihre Eingaben werden
autocomplete=off
haben, können Sie diese einfach :InformationsquelleAutor der Antwort Totoche
Andere Möglichkeit - die auch helfen, mit Sicherheit ist der Aufruf der input-box etwas anders, jedes mal, wenn Sie anzuzeigen: so, wie ein captha. So kann die Sitzung Lesen Sie die one-time-nur input-und Auto-Vervollständigen-hat nichts mehr zu gehen.
Nur ein Punkt bei rmeador auf die Frage, ob Sie stören die browser-Erfahrung: Wir entwickeln Kontakt-Management & CRM-Systeme, und wenn Sie schreiben, anderer Leute Daten in einer form, die Sie nicht wollen, dass es ständig was darauf hindeutet, Ihre eigenen details.
Dies funktioniert für unsere Bedürfnisse, aber wir haben den Luxus zu sagen, die Nutzer zu bekommen, einen anständigen browser:)
InformationsquelleAutor der Antwort Enigma Plus
autocomplete="off"
dies sollte das Problem zu beheben für alle modernen Browser.In den aktuellen Versionen von Gecko-Browsern, die autocomplete-Attribut funktioniert perfekt. Für die früheren Versionen, gehen Sie zurück zu Netscape 6.2, es funktionierte mit der Ausnahme für Formen mit "Adresse" und "Name"
Update
In einigen Fällen, der browser weiterhin darauf hindeutet, autocompletion-Werte, auch wenn die autocomplete-Attribut auf off gesetzt ist. Dieses unerwartete Verhalten kann sehr verwirrend für Entwickler. Der trick, um wirklich zwingen, die nicht-autocompletion ist weisen eine zufällige Zeichenfolge, die auf das Attributzum Beispiel:
Da dieser zufällige Wert wird nicht
valid one
den browser aufzugeben.Documetation
InformationsquelleAutor der Antwort Emilio Gort
Anhand einer zufälligen Attribut 'name' der für mich arbeitet.
Habe ich zurückgesetzt das name-Attribut, wenn Sie das Formular senden, so können Sie immer noch Zugriff auf es durch den Namen, wenn das Formular gesendet wird. (über das id-Attribut zum speichern der Namen)
InformationsquelleAutor der Antwort opznhaarlems
Beachten Sie, dass es einige Verwirrung über die Lage der autocomplete-Attribut. Es kann angewendet werden, entweder, um die ganze FORM-tag oder zu einzelnen INPUT-tags, und das war nicht wirklich standardisiert, bevor HTML5 (das ausdrücklich erlaubt beide Standorte). Ältere docs vor allem diese Mozilla-Artikel erwähnt lediglich die "FORM" - tag. Zur gleichen Zeit, einige Sicherheits-Scanner suchen nur für AutoVervollständigen im INPUT-tag und beschweren sich, wenn es fehlt (auch wenn es ist im übergeordneten FORMULAR). Eine detailliertere Analyse dieses Durcheinander ist, hier gepostet: Verwirrung über AUTOCOMPLETE=OFF-Attribute in HTML-Formularen.
InformationsquelleAutor der Antwort kravietz
Nicht ideal, aber Sie könnte sich ändern, die id und den Namen der textbox jedes mal, wenn Sie es machen - Sie würden es zu verfolgen server-Seite auch so könnte man die Daten aus.
Nicht sicher, ob dies funktionieren wird oder nicht, war nur so ein Gedanke.
InformationsquelleAutor der Antwort Kieron
Ich denke, es gibt einen einfacheren Weg.
Erstellen Sie einen versteckten Eingang mit einem zufälligen Namen (per javascript), und setzen Sie den Benutzernamen an. Wiederholen Sie das Passwort. Auf diese Weise werden Ihre backend-Skript genau weiß, was der entsprechende Feldname wird, während autocomplete in der Dunkelheit.
Ich bin wahrscheinlich falsch, aber es ist nur eine Idee.
InformationsquelleAutor der Antwort Snakes and Coffee
InformationsquelleAutor der Antwort Jack Tuck
Gültig autocomplete off
InformationsquelleAutor der Antwort Southampton Web Design