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

Lesezeit: 5 Minuten

Gibt es eine vom W3C gultige Moglichkeit die automatische Vervollstandigung
matt b

Bei Verwendung der xhtml1-transitional.dtd doctype und sammelt eine Kreditkartennummer mit dem folgenden HTML

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

wird eine Warnung auf dem W3C-Validator kennzeichnen:

es gibt kein Attribut “autocomplete”.

Gibt es eine W3C / Standards-Möglichkeit, die automatische Vervollständigung des Browsers für sensible Felder in einem Formular zu deaktivieren?

  • Sind Sie sicher, dass Sie mit der Autocomplete-Einstellung des Benutzers herumspielen wollen? Wenn sie es eingeschaltet haben, mögen sie es wahrscheinlich. Die automatische Vervollständigung ist eine vollständig browserseitige Funktion, ähnlich wie die Schaltfläche, mit der der Benutzer die Schriftgröße usw. ändern kann. Sie sollten sich nicht in ihre Wünsche einmischen

    – rméador

    24. Februar 2009 um 16:25 Uhr

  • Sogar für etwas so Sensibles wie eine Kreditkartennummer? Ich kann mir nicht viele Leute vorstellen, die daran erinnert werden möchten – zumal die automatische Vervollständigung in den meisten Browsern standardmäßig aktiviert ist. Wenn sie wollen, dass es so schlecht in Erinnerung bleibt, können sie etwas verwenden, das Formulare wie die Google-Symbolleiste ausfüllt.

    – matt b

    24. Februar 2009 um 19:16 Uhr

  • Mein Anwendungsfall ist etwas anders – ich führe meine eigene Autovervollständigung durch und möchte nicht, dass sie mit der des Browsers kollidiert. Ich habe gerade erst entdeckt, dass autocomplete=”off” ungültig ist, aber es scheint, dass es keine andere einfache Lösung gibt (es mit js zu injizieren ist einfach albern)

    – der Peer

    11. Februar 2010 um 17:27 Uhr

  • @rmeador, weil wir manchmal eine benutzerfreundlichere Alternative zur standardmäßigen automatischen Vorschlagsbox bereitstellen möchten. @corydoras bitte schieben Sie Ihr OSX-Gewicht nicht herum, es ist nicht hilfreich für die Lösung dieser Frage.

    – Josch M.

    7. März 2011 um 21:54 Uhr


  • Das Problem ist, dass die Banken den Händler haftbar machen, wenn eine betrügerische Transaktion stattgefunden hat … selbst wenn der Kunde zu 100 % schuld ist. Daher ist es unter Umständen legitim, das Feature für den Kunden zu deaktivieren.

    – Anon21

    23. Oktober 2011 um 18:52 Uhr


Gibt es eine vom W3C gultige Moglichkeit die automatische Vervollstandigung
Nick Presta

Hier ist ein guter Artikel vom MDC, der die Probleme (und Lösungen) der automatischen Vervollständigung von Formularen erklärt. Microsoft hat etwas Ähnliches veröffentlicht Hierauch.

Um ehrlich zu sein, wenn dies für Ihre Benutzer wichtig ist, scheint es angemessen, Standards auf diese Weise zu „brechen“. Zum Beispiel verwendet Amazon ziemlich häufig das Attribut „Autocomplete“, und es scheint gut zu funktionieren.

Wenn Sie die Warnung vollständig entfernen möchten, können Sie das Attribut mithilfe von JavaScript auf Browser anwenden, die dies unterstützen (IE und Firefox sind die wichtigsten Browser). someForm.setAttribute( "autocomplete", "off" ); someFormElm.setAttribute( "autocomplete", "off" );

Schließlich, wenn Ihre Website HTTPS verwendet, schaltet IE automatisch die automatische Vervollständigung aus (so wie einige andere Browser, soweit ich weiß).

Aktualisieren

Da diese Antwort immer noch einige Upvotes erhält, wollte ich nur darauf hinweisen, dass Sie in HTML5 das Attribut „autocomplete“ für Ihr Formularelement verwenden können. Siehe die Dokumentation auf W3C dafür.

  • Sieht so aus, als würde Firefox die automatische Vervollständigung auf https nicht deaktivieren, aber das ist ein nützliches Wissen. Danke!

    – matt b

    24. Februar 2009 um 16:17 Uhr

  • Safari berücksichtigt das autocomplete=”off”-Attribut nicht. Siehe stackoverflow.com/questions/22817801/…

    – Skurpi

    9. Juni 2014 um 14:01 Uhr

  • autocomplete könnte genutzt werden nicht nur an form Elementund off Wert funktioniert zumindest in chromium-40.0.2214.115

    – x-yuri

    3. März 2015 um 21:29 Uhr


  • Das w3c scheint die Standards für die automatische Vervollständigung in HTML5.1 zu erweitern (im Entwurf zum Zeitpunkt dieses Kommentars). w3c.github.io/html/…

    – Justin Nafe

    19. April 2016 um 17:23 Uhr

  • Wenn nichts funktioniert, verwenden Sie Textbereich anstelle von Textfeld, um die automatische Vervollständigung zu deaktivieren.

    – Abdel Rehman

    11. Mai 2016 um 12:56 Uhr

1646255527 485 Gibt es eine vom W3C gultige Moglichkeit die automatische Vervollstandigung
Henrik Paul

Ich wäre sehr überrascht, wenn W3C einen Weg vorgeschlagen hätte, der mit (X)HTML4 funktioniert. Die Autocomplete-Funktion ist vollständig browserbasiert und wurde in den letzten Jahren eingeführt (lange nachdem der HTML4-Standard geschrieben wurde).

Wäre aber nicht überrascht, wenn HTML5 einen hätte.

Bearbeiten: Wie ich dachte, HTML5 tut habe das Merkmal. Um Ihre Seite als HTML5 zu definieren, verwenden Sie den folgenden Doctype (dh: setzen Sie dies als allerersten Text in Ihren Quellcode). Beachten Sie, dass nicht alle Browser diesen Standard unterstützen, da es sich noch um einen Entwurf handelt.

<!DOCTYPE html>

  • Alle Browser erwarten, dass ältere Versionen von Konqueror dies unterstützen. Sogar IE6 unterstützt es. Es ist der doctype to go.

    – BalusC

    10. August 2010 um 16:48 Uhr


1646255528 280 Gibt es eine vom W3C gultige Moglichkeit die automatische Vervollstandigung
RuudKok

HTML4: Nein

HTML5: Jawohl

Das Autocomplete-Attribut ist ein Aufzählungsattribut. Das Attribut hat zwei Zustände. Die an Schlüsselwort ordnet dem on-Zustand und dem zu aus
Schlüsselwort wird dem Aus-Zustand zugeordnet. Das Attribut kann auch weggelassen werden. Der Standardwert für den fehlenden Wert ist der an Zustand. Die aus state gibt an, dass für Formularsteuerelemente im Formular standardmäßig der Feldname für das automatische Ausfüllen auf festgelegt ist aus; Der Ein-Zustand gibt an, dass Formularsteuerelemente im Formular standardmäßig ihre haben autofill Feldname auf “on” gesetzt.

Referenz: W3

  • @freestock.tk Ja, es ist klarer als alle anderen. Einfachheit zählt.

    – OverCoder

    5. Mai 2016 um 16:38 Uhr

Nein, aber die automatische Vervollständigung des Browsers wird oft ausgelöst, wenn das Feld dasselbe enthält name Attribut als zuvor ausgefüllte Felder. Wenn Sie einen cleveren Weg finden könnten, um a zu haben randomisierter Feldnamewäre die automatische Vervollständigung nicht in der Lage, zuvor eingegebene Werte für das Feld abzurufen.

Wenn Sie einem Eingabefeld einen Namen wie “email_<?= randomNumber() ?>“, und lassen Sie dann das Skript, das diese Daten empfängt, die POST- oder GET-Variablen durchlaufen und nach etwas suchen, das dem Muster entspricht “email_[some number]“, könnten Sie das durchziehen, und das hätte (praktisch) garantierten Erfolg, unabhängig vom Browser.

1646255528 192 Gibt es eine vom W3C gultige Moglichkeit die automatische Vervollstandigung
David Wasser

Nein, hier ist ein guter Artikel Mozila-Wiki.

Ich würde weiterhin das ungültige verwenden attribute. Ich denke, hier sollte der Pragmatismus über die Validierung siegen.

1646255528 512 Gibt es eine vom W3C gultige Moglichkeit die automatische Vervollstandigung
Peter Mortensen

Wie wäre es mit der Einstellung mit JavaScript?

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

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

Gibt es eine vom W3C gultige Moglichkeit die automatische Vervollstandigung
Raubvogel

Ich schlage vor, alle 4 Arten von Eingaben abzufangen:

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

Referenz:

  • könnte benutzen :input zu

    – Ascher

    1. Juni 2014 um 21:18 Uhr

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

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy