3231 Stimmen

Wie kann man die automatische Vervollständigung von Web-Formularfeldern/Eingabe-Tags im Browser deaktivieren?

Wie kann man die automatische Vervollständigung in den wichtigsten Browsern für eine bestimmte Eingabe (oder ein Formularfeld) deaktivieren?

5 Stimmen

Bei einigen Systemen, bei denen die Tester viele Informationen immer wieder manuell eingeben müssen, könnte es sinnvoll sein, die Option zu konfigurieren, so dass man sie beim Testen deaktivieren und einfach "Tab > Pfeil nach unten > Tab > Pfeil nach unten usw." drücken kann.

0 Stimmen

Essayez github.com/terrylinooo/disableautofill.js verwendet es JavaScript, um die automatische Ausfüllfunktion des Browsers zu umgehen.

4 Stimmen

Diese Frage wird diskutiert auf meta .

67voto

step Punkte 1817

Immer funktionierende Lösung

Ich habe den endlosen Kampf mit Google Chrome durch die Verwendung von Zufallszeichen gelöst. Wenn Sie die Autovervollständigung immer mit einer zufälligen Zeichenfolge durchführen, wird sie sich nie etwas merken.

<input name="name" type="text" autocomplete="rutjfkde">

Ich hoffe, dass es anderen Menschen helfen wird.

4 Stimmen

Das funktioniert sogar noch besser. You can add a small JS that generates a random code for every page load, and add that code to the input field: <code> function autoId(){ var autoId = ""; var dict = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456‌​789"; for(var i=0; i<12; i++){ autoId += dict. charAt(Math.floor(Math.random() * dict.length)); } return autoId; } $('.autocompleteoff').attr('autocomplete', autoId());</code> You can add the autocompleteoff Klasse zu Ihrem gewünschten Eingabefeld.

0 Stimmen

Funktioniert nicht in meinem Chrome Version 68.0.3440.106 (Official Build) (64-bit)

2 Stimmen

In Chrome wird jetzt das standardisierte "off" verwendet.

65voto

Sam Hasler Punkte 13118

Wie andere bereits gesagt haben, lautet die Antwort autocomplete="off" .

Ich denke jedoch, dass es sich lohnt, darauf hinzuweisen warum es ist eine gute Idee, dies in bestimmten Fällen zu verwenden, da einige Antworten auf diese und doppelte Fragen haben vorgeschlagen, dass es besser ist, sie nicht abzuschalten.

Das Speichern von Kreditkartennummern in Browsern sollte nicht den Nutzern überlassen werden. Zu viele Nutzer werden das Problem gar nicht bemerken.

Besonders wichtig ist es, diese Funktion bei Feldern für Kreditkarten-Sicherheitscodes zu deaktivieren. Wie diese Seite Staaten:

"Bewahren Sie niemals den Sicherheitscode auf ... sein Wert hängt von der Annahme ab, dass die einzige Möglichkeit, ihn zu erhalten, darin besteht, ihn von der physischen Kreditkarte abzulesen, was beweist, dass die Person, die ihn angibt, tatsächlich im Besitz der Karte ist."

Das Problem ist, dass es an einem öffentlichen Computer (Internetcafé, Bibliothek usw.) für andere Benutzer leicht ist, Ihre Kartendaten zu stehlen, und selbst auf Ihrem eigenen Computer könnte eine bösartige Website Daten zur automatischen Vervollständigung stehlen .

7 Stimmen

Wenn ich eine Website besuchen würde, die meine Karte in der Auswahlliste gespeichert hat, wäre ich sehr unglücklich. Ich würde mich fragen, wie man so nachlässig sein kann.

10 Stimmen

Viel einfacherer / kritischerer Fall. Wenn ich die Seite eines Benutzers im Admin-Bereich meiner Website aufrufe, wird versucht, seinen Benutzernamen und sein Kennwort auf meinen Admin-Benutzernamen und mein Kennwort zu setzen, ohne dass ich erkennen kann, dass es sich nicht um ein Anmeldeformular handelt. Ich möchte, dass mein Administrator-Passwort gespeichert wird, aber es ist ein kritischer Fehler, dass versucht wird, diesen gespeicherten Benutzernamen / dieses Passwort auf alle Benutzer anzuwenden, die ich dann bearbeite.

39voto

Securatek Punkte 395

Ich muss den Antworten widersprechen, die besagen, dass man die automatische Vervollständigung nicht deaktivieren sollte.

Als Erstes ist darauf hinzuweisen, dass die automatische Vervollständigung von Anmeldeformularfeldern, die nicht explizit deaktiviert sind, einen Verstoß gegen PCI-DSS darstellt. Wenn der lokale Rechner eines Benutzers kompromittiert wird, kann ein Angreifer außerdem ganz einfach an die Daten der automatischen Vervollständigung gelangen, da sie im Klartext gespeichert werden.

Es gibt sicherlich ein Argument für die Benutzerfreundlichkeit, aber es gibt ein sehr feines Gleichgewicht, wenn es darum geht, welche Formularfelder die automatische Vervollständigung deaktivieren sollten und welche nicht.

0 Stimmen

Mir ist gerade aufgefallen, dass der IE keine onChange-Ereignisse auslöst, wenn Sie eine Texteingabe mit AutoComplete ausfüllen. Wir haben Dutzende von Formularen und über tausend onChange-Ereignisse (Eingabevalidierung, Geschäftslogik), die über alle Formulare verstreut sind. Kürzlich haben wir den IE auf eine neuere Version aktualisiert und plötzlich traten seltsame Dinge auf. Glücklicherweise betreiben wir eine Intranet-App und Autovervollständigung ist kein UX-Problem für uns, es ist einfacher, es einfach auszuschalten.

6 Stimmen

Wenn der lokale Rechner eines Benutzers kompromittiert wird, ist er aufgeschmissen, Punkt. Es könnte ein Keylogger installiert sein, es könnte ein gefälschtes SSL-Root-Zertifikat hinzugefügt worden sein und alles über einen falschen Proxy gesendet werden usw. Ich habe einen echten Grund, die Autovervollständigung zu deaktivieren: Wenn ich mich als Administrator anmelde und die Seite "Benutzer bearbeiten" aufrufe, werden dem Benutzer mein Administrator-Benutzername und -Passwort zugewiesen. Ich muss dieses Verhalten verhindern.

1 Stimmen

Die Browser-Anbieter scheinen nur ihre eigenen Interessen im Auge zu haben. Gespeicherte Kennwörter = Benutzerbindung. Und Autovervollständigung ein/aus war zu einfach - warum nicht ein komplexer Standard mit semantischen Hinweisen ( html.spec.whatwg.org/multipage/ ), die es dem Browser übrigens ermöglicht, wertvolle semantische Daten von den Websites zu sammeln, die jeder Nutzer besucht ?

38voto

yajay Punkte 1040

Drei Optionen:

Erstens:

<input type='text' autocomplete='off' />

Zweitens:

<form action='' autocomplete='off'>

Drittens (JavaScript-Code):

$('input').attr('autocomplete', 'off');

2 Stimmen

Die erste und die zweite Option sollten eine Option sein, da es unterschiedlich ist, wie die Browser dies handhaben.

0 Stimmen

Versucht $formElement.attr('autocomplete', 'off'); und es funktioniert nicht.

34voto

Murat Yıldız Punkte 10369

Zusätzlich zu

autocomplete="off"

Verwenden Sie

readonly onfocus="this.removeAttribute('readonly');"

für die Eingaben, die sich nicht an Formulardaten erinnern sollen ( username , password usw.) wie unten dargestellt:

<input type="text" name="UserName" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

<input type="password" name="Password" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

Ich hoffe, das hilft.

1 Stimmen

Bei mir im IE11 kann ich nicht in das Textfeld eingeben, auch wenn onfocus das Attribut readonly entfernt hat. Wenn ich jedoch ein zweites Mal auf das Textfeld klicke, kann ich etwas eingeben.

0 Stimmen

Ich hatte das gleiche Problem mit dem IE11 (kann erst beim zweiten Fokus tippen). Hinzufügen einer Unschärfe und dann Fokus wieder funktioniert. $(document).on('focus', 'input:password[readonly="readonly"]', function () { $(this).prop('readonly', false).blur().focus(); });

0 Stimmen

@Andrew Natürlich können Sie das. Dies ist das Grundprinzip, um dieses Problem zu überwältigen, und ich habe auch ein Update mit einem vollständigen Codebeispiel hinzugefügt ;)

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