Wie deaktiviere Sie Browser die automatische Vervollständigung auf Web-Formularfeld / Input-Tag?

stimmen
2k

Wie beurteilen Sie deaktivieren autocompletein den gängigen Browsern für eine bestimmte input(oder form field)?

Veröffentlicht am 05/08/2008 um 17:22
quelle vom benutzer
In anderen Sprachen...                            


63 antworten

stimmen
2k

Firefox 30 ignoriert autocomplete="off"für Passwörter, die Entscheidung , die Benutzer aufzufordern statt , ob das Passwort auf dem Client gespeichert werden soll. Beachten Sie den folgenden Kommentar ab 5. Mai 2014:

  • Die Passwort - Manager immer aufgefordert , wenn er will , ein Passwort speichern. Passwörter werden nicht ohne Erlaubnis des Benutzers gespeichert.
  • Wir sind der dritte Browser, um diese Änderung zu implementieren, nachdem IE und Chrome.

Laut Mozilla - Entwickler - Dokumentation des Formularelementes Attribut autocompleteverhindert , dass Formulardaten von in älteren Browsern zwischengespeichert werden.

<input type="text" name="foo" autocomplete="off" />
Beantwortet am 05/08/2008 um 17:24
quelle vom benutzer

stimmen
237

Zusätzlich zu autocomplete=off, könnten Sie haben auch Ihre Formularfelder Namen durch den Code randomisiert werden, der die Seite erzeugt, vielleicht durch eine sitzungsspezifische Zeichenfolge an das Ende der Namen hinzufügen.

Wenn das Formular abgeschickt haben, können Sie diesen Teil weg abzustreifen sie auf der Serverseite vor der Verarbeitung. Dies würde den Web-Browser von der Suche nach Kontext für Ihren Bereich verhindern und könnte auch dazu beitragen, XSRF Angriffe zu verhindern, da ein Angreifer nicht in der Lage sein würde, die Feldnamen für eine Formular-Vorlage zu erraten.

Beantwortet am 20/10/2008 um 14:36
quelle vom benutzer

stimmen
181

Die meisten der gängigen Browser und Passwort - Manager (richtig, IMHO) jetzt ignorieren autocomplete=off.

Warum? Viele Bänke und andere „hohe Sicherheit“ Websites hinzugefügt , autocomplete=offum ihre Login - Seiten „aus Sicherheitsgründen“ , aber diese Sicherheit tatsächlich abnimmt , da es Menschen bewirkt , dass die Passwörter auf diesen Hochsicherheits Websites ändern , da die automatische Vervollständigung zu sein , leicht zu merken (und damit zu knacken) war kaputt.

Vor langer Zeit begann die meist Passwort - Manager zu ignorieren autocomplete=off, und jetzt der Browser nur für Benutzername / Passwort - Eingänge das gleiche zu tun beginnen.

Leider einsetzen, Fehler in der zum automatischen Vervollständigung Implementierungen Benutzername und / oder Passwort Info in unangemessene Formularfelder, Formularvalidierung Fehler verursacht, oder schlimmer noch, versehentlich Benutzername in Felder einfügen, die absichtlich vom Benutzer frei gelassen wurden.

Was ist ein Web-Entwickler zu tun?

  • Wenn Sie alle Passwortfelder auf einer Seite von sich halten können, das ist ein guter Start, wie es scheint, dass das Vorhandensein eines Passwort-Feld der Hauptauslöser für Benutzer / die automatische Vervollständigung passieren zu treten. Andernfalls die folgenden Tipps lesen.
  • Safari merkt , dass es 2 Passwortfelder und deaktiviert die automatische Vervollständigung in diesem Fall, vorausgesetzt , es muss ein Passwort ändern Form, kein Login - Formular. Also nur sicher sein , 2 zu verwenden Passwort - Felder (neu und neu bestätigen) für alle Formen , bei denen Sie erlauben
  • Chrome 34, leider werden versuchen , Felder Autofill mit Benutzer / passieren , wenn es ein Passwortfeld sieht. Dies ist ein ziemlich schlechter Fehler, der hoffentlich, sie auf das Safari - Verhalten ändern werden. Doch an die Spitze des Formulars des Hinzufügen scheint das Passwort autofill zu deaktivieren:

    <input type="text" style="display:none">
    <input type="password" style="display:none">
    

Ich habe noch nicht gründlich IE oder Firefox sucht wird aber gerne die Antwort zu aktualisieren, wenn andere Informationen haben in den Kommentaren.

Beantwortet am 23/04/2014 um 05:00
quelle vom benutzer

stimmen
116

Manchmal sogar die automatische Vervollständigung = off würde verhindern , nicht zu füllen Anmeldeinformationen in falsche Felder, aber nicht vom Benutzer oder Spitznamen Feld.

Diese Problemumgehung ist zusätzlich zu apinstein der Post über Browserverhalten.

Fix Browser Autofill in Nur-Lese-und beschreibbare auf Fokus (klicken und Reiter) eingestellt

 <input type="password" readonly  
     onfocus="this.removeAttribute('readonly');"/>

Update: Mobile Safari setzt Cursor auf dem Feld, zeigt aber nicht virtuelle Tastatur. New Fix funktioniert wie vorher, aber Griffe virtuelle Tastatur:

<input id="email" readonly type="email" onfocus="if (this.hasAttribute('readonly')) {
    this.removeAttribute('readonly');
    // fix for mobile safari to show virtual keyboard
    this.blur();    this.focus();  }" />

Live Demo https://jsfiddle.net/danielsuess/n0scguv6/

// UpdateEnd

Da Browser automatisch füllt Anmeldeinformationen falsch Textfeld !?

Ich stelle fest , dieses seltsame Verhalten auf Chrome und Safari, wenn es Passwort - Felder sind in der gleichen Form. Ich denke , sucht der Browser nach einem Passwort Feld Ihre gespeicherten Anmeldeinformationen einzufügen. Dann ist es automatisch Fills (nur raten aufgrund Beobachtung) nächstgelegenen textlike-Eingabefeld, das vor dem Passwort - Feld in DOM erscheint. Als Browser ist die letzte Instanz, Sie können es nicht kontrollieren können,

Diese Nur-Lese-Fix für mich oben gearbeitet.

Beantwortet am 16/06/2014 um 17:04
quelle vom benutzer

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

Dies funktioniert in Internet Explorer und Mozilla Firefox, der Nachteil ist, dass es nicht XHTML-Standard ist.

Beantwortet am 05/08/2008 um 17:27
quelle vom benutzer

stimmen
54

Wie andere gesagt haben, ist die Antwort autocomplete="off"

Aber ich denke , es lohnt sich die besagt , warum es eine gute Idee, dies in bestimmten Fällen , wie einige Antworten auf diese zu nutzen und zu vervielfältigen Fragen vorgeschlagen haben , ist es besser , nicht um es auszuschalten.

Stoppen Browser Kreditkartennummern zu speichern sollte nicht auf Benutzer überlassen werden. Zu viele Benutzer nicht einmal erkennen, dass es ein Problem ist.

Es ist besonders wichtig , sie auf den Feldern für Kreditkarten-Sicherheitscodes auszuschalten. Wie diese Seite lautet:

„Speichern Sie niemals den Sicherheitscode ... ihr Wert hängt von der Annahme, dass der einzige Weg, um es zu liefern, ist es von der physischen Kreditkarte zu lesen, was bewies, dass die Person, liefert es die Karte tatsächlich hält.“

Das Problem ist, wenn es ein öffentlicher Computer (Internet - Café, Bibliothek usw.) ist es dann einfach für andere Benutzer Ihrer Kartendaten zu stehlen, und auch auf Ihrem eigenen Rechner eine schädliche Website könnte die automatische Vervollständigung Daten stehlen .

Beantwortet am 23/01/2009 um 22:21
quelle vom benutzer

stimmen
50

Die Lösung für Chrome ist hinzuzufügen , autocomplete="new-password"mit dem Eingabetyp Passwort.

Beispiel:

<form name="myForm"" method="post">
<input name="user" type="text" />
<input name="pass" type="password" autocomplete="new-password" />
<input type="submit">
</form>

Chrome automatisch vervollständigt immer die Daten , wenn sie eine Schachtel findet Art Kennwort , gerade genug für das Feld , um anzuzeigen autocomplete = "new-password".

Das funktioniert gut für mich.

Hinweis: stellen Sie sicher, mit F12, die Änderungen wirksam werden, speichern viele Male Browser die Seite im Cache, das gab mir einen schlechten Eindruck, dass es nicht funktioniert hat, aber der Browser nicht bringen eigentlich die Änderungen.

Beantwortet am 24/11/2016 um 17:07
quelle vom benutzer

stimmen
29

Ich würde bitten, mit diesen Antworten zu unterscheiden, die automatischen Vervollständigung deaktivieren sagen zu vermeiden.

Das erste, was bis zu bringen ist, dass die automatische Vervollständigung nicht explizit auf Login-Formular Felder deaktiviert wird, ist ein PCI-DSS scheitern. Darüber hinaus, wenn eine lokale Rechner kann der Benutzer dann gefährdet ist werden alle Daten zur automatischen Vervollständigung trivialer von einem Angreifer erhalten aufgrund es im Klartext gespeichert werden.

Es ist sicherlich ein Argument für die Benutzerfreundlichkeit, aber es gibt eine sehr feine Balance, wenn es darum geht, die Formularfelder zum automatischen Vervollständigung deaktiviert haben sollten und welche nicht.

Beantwortet am 17/09/2011 um 01:33
quelle vom benutzer

stimmen
24

Drei Optionen: Erstens:

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

Zweite:

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

Dritte (Javascript-Code):

$('input').attr('autocomplete', 'off');
Beantwortet am 19/03/2013 um 11:05
quelle vom benutzer

stimmen
18

Ich habe endlose Lösungen versucht, und dann fand ich diese:

Statt autocomplete="off"einfach nur benutzenautocomplete="false"

So einfach wie das, und es wirkt wie ein Zauber in Google Chrome, wie gut!

Beantwortet am 01/05/2015 um 05:56
quelle vom benutzer

stimmen
17

Gerade gesetzt autocomplete="off". Es gibt einen sehr guten Grund , dies zu tun: Sie wollen Ihre eigene Autocomplete Funktionalität zur Verfügung zu stellen!

Beantwortet am 05/08/2008 um 17:32
quelle vom benutzer

stimmen
16

Keine der Lösungen war für mich in diesem Gespräch.

Ich endlich eine heraus reine HTML - Lösung , die erfordert keine Javascript arbeitet in modernen Browsern (außer IE, es mindestens 1 Fang hatte, nicht wahr?), Und Sie nicht benötigen die automatische Vervollständigung für das gesamte Formular zu deaktivieren.

Schalten Sie einfach die automatische Vervollständigung auf das formund schalten Sie es für jede inputSie es wünschen , in der Form zu arbeiten. Beispielsweise:

<form autocomplete="off">
    <!-- these inputs will not allow autocomplete and chrome 
         won't highlight them yellow! -->
    <input name="username"  />
    <input name="password" type="password" />
    <!-- this field will allow autocomplete to work even 
         though we've disabled it on the form -->
    <input name="another_field" autocomplete="on" />
</form>
Beantwortet am 15/08/2013 um 20:02
quelle vom benutzer

stimmen
16

Ich denke , autocomplete=offin HTML 5 unterstützt.

Fragen Sie sich, warum Sie dies aber tun wollen - es sinnvoll, in einigen Situationen machen kann, aber tut es nicht nur um es zu tun.

Es ist weniger bequem für die Nutzer und nicht einmal ein Sicherheitsproblem in OS X (genannt von Soren unten). Wenn Sie besorgt über die Menschen, die fern ihrer Passwörter gestohlen - ein Keylogger könnte es immer noch tun , obwohl Ihre App verwendet autcomplete=off.

Als Benutzer, der die (meisten) meine Informationen erinnern, einen Browser haben wählt, würde ich finde es ärgerlich, wenn Ihre Website Mine nicht erinnern konnte.

Beantwortet am 24/02/2011 um 00:24
quelle vom benutzer

stimmen
16

Wir haben tatsächlich nutzen SASB ‚s Idee für eine Website. Es war ein medizinischer Software - Web - App einer Arztpraxis laufen. Allerdings waren viele unserer Kunden Chirurgen , die viele verschiedene Arbeitsplätze, einschließlich halböffentlichen Terminals. So wollten sie sicherstellen, dass ein Arzt, der nicht die Implikation von automatisch gespeicherten Passwörter nicht versteht oder nicht aufpasst nicht versehentlich ihre Login - Infos lassen leicht zugänglich. Natürlich war dies vor der Idee der privaten Surfen , die mit IT in IE8, FF3.1 usw. Auch so viele Ärzte zu sehen sein wird beginnen , werden gezwungen, alte Schule Browser in Krankenhäusern zu verwenden , die sich nicht ändern.

So hatten wir die Anmeldeseite Zufallsfeldnamen erzeugen, die für diese Stelle nur funktionieren würde. Ja, es ist weniger bequem, aber es trifft nur den Benutzer über den Kopf über keine Anmeldeinformationen an öffentlichen Terminals zu speichern.

Beantwortet am 16/09/2008 um 16:35
quelle vom benutzer

stimmen
16

Auf einem verwandten oder tatsächlich auf der völlig entgegengesetzten Note -

„Wenn Sie den Benutzer der oben genannten Form sind und wollen die Autocomplete - Funktion wieder zu aktivieren, verwenden Sie das‚Passwort merken‘Bookmarklet aus dieser Bookmarklets Seite . Es entfernt alle autocomplete="off"Attribute von allen Formen auf der Seite. Halten Sie den guten Kampf kämpfen! "

Beantwortet am 08/09/2008 um 20:29
quelle vom benutzer

stimmen
13

War ein Nicht-Standard-Weg, dies zu tun (ich glaube, Mozilla und Internet Explorer unterstützt es noch), aber mit den Nutzern Erwartungen Unordnung ist eine schlechte Idee.

Wenn der Benutzer seine Kreditkartendaten in ein Formular eingibt und dann lassen Sie jemand anderes diesen Browser verwenden Sie es nicht Ihr Anliegen ist. :)

Beantwortet am 05/08/2008 um 17:26
quelle vom benutzer

stimmen
10

das Hinzufügen der

autocomplete="off"

zum Formular - Tag wird der Browser die automatische Vervollständigung deaktivieren (was zuvor in diesem Feld eingegeben wurde) aus allen inputBereichen innerhalb dieser besonderen Form.

Getestet auf:

  • Firefox 3.5, 4 BETA
  • Internet Explorer 8
  • Chrom
Beantwortet am 11/02/2011 um 06:14
quelle vom benutzer

stimmen
9

Hinzufügen autocomplete="off"wird es nicht gonna schneiden.

Ändern input type - Attribut auf type="search".
Google nicht auto-fill gilt mit einer Art Suche auf Eingaben.

Beantwortet am 28/10/2015 um 16:32
quelle vom benutzer

stimmen
9

Um die ungültige XHTML zu vermeiden, können Sie dieses Attribut mit Javascript gesetzt. Beispiel mit jQuery:

<input type="text" class="noAutoComplete" ... />

$(function() {
    $('.noAutoComplete').attr('autocomplete', 'off');
});

Das Problem ist, dass Benutzer ohne Javascript tun die Autocomplete Funktionalität erhalten.

Beantwortet am 12/12/2010 um 19:34
quelle vom benutzer

stimmen
8

Ich kann nicht glauben, dass dies immer noch ein Thema ist so lang, nachdem es berichtet worden. Die oben genannten Lösungen nicht für mich arbeiten, wie Safari zu wissen schien, wenn das Element nicht angezeigt oder Off-Screen, aber die folgenden tat Arbeit für mich:

<div style="height:0px; overflow:hidden; ">
  Username <input type="text" name="fake_safari_username" >
  Password <input type="password" name="fake_safari_password">
</div>

Hoffe, das ist nützlich für jemanden!

Beantwortet am 23/04/2016 um 11:02
quelle vom benutzer

stimmen
8

Ein wenig zu spät , um das Spiel ... aber ich lief in dieses Problem und versuchte , mehrere Ausfälle, aber diese funktioniert für mich auf gefunden MDN

In einigen Fällen wird der Browser hält die automatische Vervollständigung was darauf hindeutet, Werte, selbst wenn das Autocomplete-Attribut off gesetzt. Dieses unerwartete Verhalten kann für Entwickler sehr verwirrend sein. Der Trick wirklich zu zwingen, die nicht-Abschluss ist eine zufällige Zeichenfolge mit dem Attribut zugewiesen werden wie folgt:

autocomplete="nope"
Beantwortet am 22/03/2016 um 19:38
quelle vom benutzer

stimmen
8

Dies ist eine Frage der Sicherheit, den Browser jetzt ignorieren. Browser identifizieren und speichert Inhalte Eingabenamen, auch wenn Entwickler betrachten die Informationen empfindlich ist und nicht gespeichert werden soll. Machen einen Eingangsnamen unterscheidet zwischen zwei Anfragen wird das Problem lösen (aber immer noch in den Browser-Cache gespeichert und auch den Browser-Cache erhöhen). Bitten Sie den Benutzer zu aktivieren oder deaktivieren Optionen in den Einstellungen seines Browsers ist keine gute Lösung. Das Problem kann im Backend festgelegt werden.

Hier ist meine Lösung. Ein Ansatz, den ich in meinem Rahmen umgesetzt haben. Alle Elemente der automatischen Vervollständigung sind mit einem versteckten Eingang wie folgt erzeugt:

<? $r = rmd5(rand().mocrotime(TRUE)); ?>
<form method="POST" action="./">
    <input type="text" name="<? echo $r; ?>" />
    <input type="hidden" name="__autocomplete_fix_<? echo $r; ?>" value="username" />
    <input type="submit" name="submit" value="submit" />
</form>

Server dann Prozess POST-Variablen wie folgt aus:

foreach ($_POST as $key => $val)
{
    if(preg_match('#^__autocomplete_fix_#', $key) === 1){
        $n = substr($key, 19);
        if(isset($_POST[$n]))$_POST[$val] = $_POST[$n];
    }
}

Der Wert kann wie gewohnt zugegriffen werden

var_dump($_POST['username']);

Und der Browser in der Lage, keine Informationen aus dem vorherigen Antrag oder von früheren Benutzern vorschlagen.

Alle Arbeiten wie ein Charme, auch wenn Browser-Updates, wollen die automatische Vervollständigung ignorieren oder nicht. Das war der beste Weg, um das Problem für mich zu beheben.

Beantwortet am 02/06/2015 um 20:37
quelle vom benutzer

stimmen
8

versuchen auch diese , wenn nur autocomplete="off"nicht funktioniert:

autocorrect="off" autocapitalize="off" autocomplete="off"
Beantwortet am 04/12/2012 um 19:24
quelle vom benutzer

stimmen
8

Verwenden Sie einen Nicht-Standard-Namen und die ID für die Felder, also eher als „name“ hat „name_“. Browser wird dann sieht es nicht als das Namensfeld zu sein. Das beste daran ist, dass Sie dies einige tun können, aber nicht alle Felder, und es wird einige, aber nicht alle Felder automatisch vervollständigt.

Beantwortet am 05/08/2008 um 17:27
quelle vom benutzer

stimmen
7

Keiner der hier arbeitete für mich in Chrome genannten Hacks. Es gibt eine Diskussion über die Frage hier: https://code.google.com/p/chromium/issues/detail?id=468153#c41

Addiert man diese innerhalb eines <form>Werkes (zumindest vorerst):

<div style="display: none;">
    <input type="text" id="PreventChromeAutocomplete" name="PreventChromeAutocomplete" autocomplete="address-level4" />
</div>
Beantwortet am 02/07/2015 um 10:40
quelle vom benutzer

stimmen
6

Die beste Lösung:

Verhindern der automatischen Vervollständigung Benutzername (oder E-Mail) und Passwort:

<input type="email" name="email"><!-- Can be type="text" -->
<input type="password" name="password" autocomplete="new-password">

Verhindern der automatischen Vervollständigung ein Feld:

<input type="text" name="field" autocomplete="nope">

Erläuterung: autocompleteweiter arbeiten <input>, autocomplete="off"funktioniert nicht, aber man kann sich ändern , offauf eine zufällige Zeichenfolge, wie nope.

Arbeitet in:

  • Chrom: 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 und 64

  • Die folgend: 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 und 58

Beantwortet am 20/03/2018 um 04:31
quelle vom benutzer

stimmen
6

Versuchen hinzufügen

Nur-Lese-onfocus = "this.removeAttribute ( 'Read-only');"

zusätzlich zu

Autocomplete = "off"

mit dem Eingang (n) , die Sie nicht wollen , Formulardaten (erinnern username, passwordusw.) 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');" >

Getestet auf die neuesten Versionen der gängigen Browser , dh Google Chrome, Mozilla Firefox, Microsoft Edgeusw. und ohne Probleme arbeiten. Hoffe das hilft...

Beantwortet am 01/11/2017 um 13:26
quelle vom benutzer

stimmen
6

Dies funktioniert für mich.

<input name="pass" type="password" autocomplete="new-password" />

Wir können diese Strategie auch in anderen Steuerelemente wie Text verwenden, wählen usw.

Beantwortet am 30/12/2016 um 15:05
quelle vom benutzer

stimmen
5

Also hier ist es:

function turnOnPasswordStyle() {
  $('#inputpassword').attr('type', "password");
}
<input oninput="turnOnPasswordStyle()" id="inputpassword" type="text">

Beantwortet am 29/05/2016 um 19:57
quelle vom benutzer

stimmen
5

Sie können in der Eingabe verwenden.

Beispielsweise;

<input type=text name="test" autocomplete="off" />
Beantwortet am 02/11/2012 um 18:00
quelle vom benutzer

stimmen
4

Sie können einfach die setzen autocomplete="off"wie folgenden Code in den HTML - Feldern.

<input type="text" name="" value="" autocomplete="off" />
Beantwortet am 12/05/2016 um 10:53
quelle vom benutzer

stimmen
4

Sie können die automatische Vervollständigung deaktivieren , wenn Sie das Entfernen formTag wurde das gleiche von meiner Bank getan , und ich habe mich gefragt , wie sie dies taten. Es entfernt auch den Wert, der bereits durch den Browser erinnert wurde , nachdem Sie das Tag zu entfernen.

Beantwortet am 25/02/2016 um 15:27
quelle vom benutzer

stimmen
4

Chrome plant , dies zu unterstützen .

Denn jetzt ist der beste Vorschlag einen Eingabetyp zu verwenden, die nur selten automatisch vervollständigt wird.

Chrom Diskussion

<input type='search' name="whatever" />

kompatibel zu sein mit firefox, verwenden normale Autocomplete = ‚off‘

<input type='search' name="whatever" autocomplete='off' />
Beantwortet am 10/12/2015 um 02:21
quelle vom benutzer

stimmen
3

Viele moderne Browser die automatische Vervollständigung = „off“ für Login - Felder nicht mehr unterstützen. autocomplete="new-password"stattdessen sind mehr Informationen wokring MDN docs

Beantwortet am 21/12/2017 um 04:33
quelle vom benutzer

stimmen
3

Ich benutze diese TextMode="password" autocomplete="new-password"und in Seitenlade in aspxtxtPassword.Attributes.Add("value", '');

Beantwortet am 14/03/2017 um 09:35
quelle vom benutzer

stimmen
3

Mein Problem war meist autofill mit Chrome, aber ich denke, das ist als die automatische Vervollständigung wahrscheinlich problematischer ist.

Trick: mit Hilfe einer Zeitschaltuhr Form zurückgesetzt und Passwort Felder leer gesetzt. Die 100 ms Dauer scheint minimal zu sein für sie zu arbeiten.

$(document).ready(function() {
    setTimeout(function() {
        var $form = $('#formId');
        $form[0].reset();
        $form.find('INPUT[type=password]').val('');
    }, 100);
});
Beantwortet am 12/07/2016 um 15:29
quelle vom benutzer

stimmen
3

Die Antwort dsuess mit der Nur - Lese geschrieben war sehr klug und arbeitete. Aber wie ich Bootstrap verwendet, die Nur - Lese - Eingabefeld wurde - bis fokussierte - die mit grauem Hintergrund. Während das Dokument geladen wird , können Sie den Browser durch einfaches Verriegeln und Entriegeln des Eingangs Trick.

So hatte ich eine Idee zu implementieren diese in jQuery Lösung:

    jQuery(document).ready(function () {
        $("input").attr('readonly', true);
        $("input").removeAttr('readonly');
   });
Beantwortet am 16/06/2016 um 10:43
quelle vom benutzer

stimmen
3

Wenn Ihr Problem ist ein Kennwortfeld mit Auto-abgeschlossen ist, dann können Sie dies nützlich finden ...

Wir hatten dieses Problem in verschiedenen Bereichen unserer Seite, wo das Geschäft den Benutzer für ihre Benutzernamen und Passwort erneut abfragen wollte, und zwar nicht das Passwort Autofill aus vertraglichen Gründen arbeiten wollte. Wir fanden, dass der einfachste Weg, dies zu tun ist für den Browser in einem falschen Passwort-Feld zu setzen zu finden und zu füllen, während das eigentliche Passwort-Feld unberührt bleibt.

<!-- This is a fake password input to defeat the browser's autofill behavior -->
<input type="password" id="txtPassword" style="display:none;" />
<!-- This is the real password input -->
<input type="password" id="txtThisIsTheRealPassword" />

Beachten Sie, dass in Firefox und IE, war es einfach genug, um jede Eingabe vom Typ Passwort zu setzen, bevor die eigentlichen einer, sondern Chrome sah durch die und hatte mich gezwungen, tatsächlich zu der falschen Passworteingabe zu nennen (durch eine offensichtliche Passwort-ID zu geben), um es zu "beißen". Ich habe eine Klasse, den Stil zu implementieren, anstatt einen eingebetteten Stil so versuchen zu verwenden, dass, wenn die oben nicht aus irgendeinem Grunde nicht funktionieren.

Beantwortet am 27/04/2016 um 20:44
quelle vom benutzer

stimmen
3

Dies ist , was wir zur automatischen Vervollständigung einer Textbox genannt. Geben Sie hier image description Wir können die automatische Vervollständigung einer Textbox in 2 Arten - deaktivieren

  1. Mit dem Browser-Aufkleber
  2. Mit dem Kodex

    Um in Browser zu deaktivieren, um die Einstellung gehen

    Um in browse dissable der Einstellung gehen

Zum vorzurücken Einstellung und das Kontrollkästchen deaktivieren und dann wiederherstellen.

Zum vorzurücken Einstellung und das Kontrollkästchen deaktivieren und dann wiederherstellen.

Wenn Sie Etikett bei der Codierung deaktivieren möchten , können Sie als Folge
verwenden AutoCompleteType="Disabled":

<asp:TextBox runat="server" ID="txt_userid" AutoCompleteType="Disabled"></asp:TextBox>  

Durch Einstellen Formular autocomplete="off":

<asp:TextBox runat="server" ID="txt_userid" autocomplete="off"></asp:TextBox> 

Durch Einstellen Formular autocomplete="off":

<form id="form1" runat="server" autocomplete="off">  
    //your content
</form>  

Durch die Verwendung von Code in .CS Seite

protected void Page_Load(object sender, EventArgs e)  
    {  
    if(!Page.IsPostBack)  
    {  


        txt_userid.Attributes.Add("autocomplete", "off");  

    }  
}  

Durch die Verwendung von JQuery

head runat="server">  
<title></title>  
<script src="Scripts/jquery-1.6.4.min.js"></script>  
<script type="text/javascript">  
    $(document).ready(function () {  
        $('#txt_userid').attr('autocomplete', 'off');  

    });  

</script>  
Beantwortet am 19/03/2016 um 05:05
quelle vom benutzer

stimmen
3
<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        try {
            $("input[type='text']").each(function(){
                           $(this).attr("autocomplete","off");
                        });
        }
        catch (e)
        { }
    });

</script>
Beantwortet am 16/11/2015 um 13:02
quelle vom benutzer

stimmen
2

Wenn Sie den gemeinsamen Browser - Plug-in verhindern , wollen LastPassvon Auto-Ausfüllen eines Feldes als auch, können Sie das Attribut hinzufügen data-lpignore="true"auf diesen Thread zu den anderen Vorschlägen gegeben. Beachten Sie, dass dies gilt nicht nur für Passwortfelder.

<input type="text" autocomplete="false" data-lpignore="true" />

Ich habe versucht , diese gleiche Sache eine Weile zurück zu tun, und war ratlos , weil keiner der Vorschläge , die ich arbeitete für mich gefunden. Es stellte sich heraus , es war LastPass.

Beantwortet am 21/11/2018 um 23:06
quelle vom benutzer

stimmen
2

Ich habe den endlosen Kampf mit Google Chrome mit der Verwendung von zufälligen Zeichen gelöst.

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

Ich hoffe, dass es zu anderen Menschen zu helfen.

Beantwortet am 04/08/2018 um 14:22
quelle vom benutzer

stimmen
2

Google Chrome ignoriert das autocomplete="off"Attribut für bestimmte Eingaben, einschließlich Passworteingaben und gemeinsam mit Namen erfassten Eingaben werden .

Zum Beispiel, wenn Sie einen Eingang mit dem Namen haben address, dann wird Chrome autofill Vorschläge von Adressen auf anderen Seiten eingegeben bieten, auch wenn Sie ihm sagen , nicht zu :

<input type="string" name="address" autocomplete="off">

Wenn Sie nicht über Chrome das tun wollen, dann können Sie umbenennen oder den Namen des Formularfeld Namensraum:

<input type="string" name="mysite_addr" autocomplete="off">

Wenn Sie nicht Autovervollständigen Werte nichts dagegen, die vorher auf Ihrer Website eingegeben haben, dann können Sie die automatische Vervollständigung aktiviert lassen. den Feldnamen Namespacing sollte ausreichen, um Werte von anderen Websites erscheinen in Erinnerung zu verhindern.

<input type="string" name="mysite_addr" autocomplete="on">
Beantwortet am 22/06/2018 um 06:10
quelle vom benutzer

stimmen
2

Es ist nicht möglich zu sein scheint, dies zu erreichen, ohne eine Verbindung Client-Seite und Server-Seite Code.

Um sicher zu stellen, dass der Benutzer in irgendeiner Form ohne die automatische Vervollständigung jedes Mal, füllen muß ich die folgenden Techniken verwenden:

  1. Generieren Sie die Formularfeldnamen auf dem Server und verwenden versteckte Eingabefelder diese Namen zu speichern, so dass, wenn auf dem Server der Server-seitigen Code übermittelt die generierten Namen verwenden können, um die Feldwerte zugreifen. Dies ist der Benutzer daran zu hindern, mit der Option zum automatischen die Felder füllen.

  2. Legen Sie drei Instanzen jedes Formularfeld auf dem Formular und verstecken die ersten und letzten Felder jedes Satzes mit CSS und dann deaktivieren sie nach Laden der Seite mit Javascript. Dies ist der Browser das Ausfüllen der Felder automatisch zu verhindern.

Hier ist eine Geige, die die JavaScript, CSS und HTML demonstriert wie in # 2 beschrieben https://jsfiddle.net/xnbxbpv4/

javascript:

$(document).ready(function() {
    $(".disable-input").attr("disabled", "disabled");
});

CSS:

.disable-input {
  display: none;
}

html:

<form>
<input type="email" name="username" placeholder="username" class="disable-input">
<input type="email" name="username" placeholder="username">
<input type="email" name="username" placeholder="username" class="disable-input">
<br>
<input type="password" name="password" placeholder="password" class="disable-input">
<input type="password" name="password" placeholder="password">
<input type="password" name="password" placeholder="password" class="disable-input">
<br>
<input type="submit" value="submit">
</form>

Hier ist ein grobes Beispiel dafür, was die Code-Servers asp.net mit Rasiermesser wäre # 1 zu erleichtern

Modell:

public class FormModel
{
    public string Username { get; set; }
    public string Password { get; set; }
}

Regler:

public class FormController : Controller
{
    public ActionResult Form()
    {
        var m = new FormModel();

        m.Username = "F" + Guid.NewGuid().ToString();
        m.Password = "F" + Guid.NewGuid().ToString();

        return View(m);
    }

    public ActionResult Form(FormModel m)
    {
        var u = Request.Form[m.Username];
        var p = Request.Form[m.Password];

        // todo: do something with the form values

        ...

        return View(m);
    }
}

Aussicht:

@model FormModel

@using (Html.BeginForm("Form", "Form"))
{
    @Html.HiddenFor(m => m.UserName)
    @Html.HiddenFor(m => m.Password)

    <input type="email" name="@Model.Username" placeholder="username" class="disable-input">
    <input type="email" name="@Model.Username" placeholder="username">
    <input type="email" name="@Model.Username" placeholder="username" class="disable-input">
    <br>
    <input type="password" name="@Model.Password" placeholder="password" class="disable-input">
    <input type="password" name="@Model.Password" placeholder="password">
    <input type="password" name="@Model.Password" placeholder="password" class="disable-input">
    <br>
    <input type="submit" value="submit">
}
Beantwortet am 28/02/2017 um 10:25
quelle vom benutzer

stimmen
2

Safari nicht seine Meinung über die automatische Vervollständigung ändern , wenn Sie setzen autocomplete="off"dynamisch von Javascript. Allerdings wäre es respektieren , wenn Sie das tun auf pro-Feld - Basis.

$(':input', $formElement).attr('autocomplete', 'off');
Beantwortet am 01/11/2015 um 10:28
quelle vom benutzer

stimmen
2

Ich weiß , dass dies eine alte Post, aber es könnte sein , wichtig zu wissen , dass Firefox (ich denke nur Firefox) genannt Wert verwendet , ismxfilleddass im Grunde der automatische Vervollständigung zwingt.

ismxfilled="0" zum OFF

oder

ismxfilled="1" zum ON

Beantwortet am 13/08/2015 um 18:22
quelle vom benutzer

stimmen
1

Versuche dies :

<input type='text' autocomplete='off' />
Beantwortet am 27/05/2017 um 08:13
quelle vom benutzer

stimmen
1

Ich möchte klarstellen, dass diese Antwort auf Vollständigkeit halber und für Gemeinschaft Wissen, keineswegs ist es zu empfehlen.

In Bezug auf Internet Explorer 11, gibt es ein Sicherheitsmerkmal in Ort, der verwendet werden kann, die automatische Vervollständigung zu blockieren. Es funktioniert wie folgt:

Jede Form Eingabewert, der in JavaScript, nachdem der Benutzer geändert wird bereits eingegeben es als nicht förderfähig für die automatische Vervollständigung gekennzeichnet ist.

Diese Funktion wird in der Regel zum Schutz der Benutzer vor bösartigen Websites verwendet, die Ihr Passwort ändern mögen, nachdem Sie es oder dergleichen ein.

Sie konnten jedoch ein einzelnen Sonderzeichen am Anfang eines Passwortes-String einfügen zum automatischen Vervollständigung zu blockieren. Dieses Sonderzeichen könnte unten in der Pipeline später erkannt und entfernt werden.

Beantwortet am 17/11/2016 um 17:41
quelle vom benutzer

stimmen
1

Eine Abhilfe ist nicht das Passwort-Feld in das DOM eingefügt werden, bevor der Benutzer das Passwort ändern. Dies kann in bestimmten Fällen anwendbar sein:

In unserem System haben wir ein Passwort-Feld, das in einer Admin-Seite, so müssen wir versehentlich andere Benutzer die Passwörter Einstellung vermeiden. Das Formular verfügt über ein zusätzliches Kontrollkästchen, das das Passwortfeld Sichtbarkeit aus diesem Grunde wechseln wird.

Also in diesem Fall, automatisches Ausfüllen von einem Passwort-Manager wird ein doppeltes Problem, da die Eingabe für den Benutzer nicht einmal sichtbar.

Die Lösung war, das Ankreuzfeld Trigger zu haben, ob das Passwortfeld im DOM eingesetzt ist, nicht nur die Sichtbarkeit.

Pseudo-Implementierung für AngularJS:

<input type="checkbox" ng-model="createPassword">
<input ng-if="changePassword" type="password">
Beantwortet am 24/10/2016 um 09:16
quelle vom benutzer

stimmen
1

Ich benutze den folgenden jQuery-Snippet:

// Prevent input autocomplete
$.fn.preventAutocomplete = function() {
    this.each(function () {
        var $el = $(this);
        $el
            .clone(false, false)
            .insertBefore($el)
            .prop('id', '')
            .hide()
        ;
    });
};

Und als nur $('#login-form input').preventAutocomplete();

Beantwortet am 02/09/2016 um 10:14
quelle vom benutzer

stimmen
0

Dies ist für mich wie ein Zauber.

  1. Stellen Sie das Attribut zum automatischen Vervollständigung des Formulars aus
  2. Fügen Sie ein Dummy-Eingabefeld ein und setzen Sie seine Eigenschaft auch aus.
<form autocomplete="off">
 <input type="text" autocomplete="off" style="display:none">
</form>
Beantwortet am 17/12/2018 um 06:39
quelle vom benutzer

stimmen
0

Um zu verhindern, Auto-Browser mit dem Benutzer gespeichert Website Login-Daten füllen, legen Sie einen Text und Passwort-Eingabefeld am oberen Rand des Formulars mit nicht leeren Werten und Stil „position: absolute; top: -999px; links: -999px“ gesetzt zu verstecken die Felder.

<form>
  <input type="text" name="username_X" value="-" tabindex="-1" aria-hidden="true" style="position: absolute; top: -999px; left:-999px" />
  <input type="password" name="password_X" value="-" tabindex="-1" aria-hidden="true" style="position: absolute; top: -999px; left:-999px" />
  <!-- Place the form elements below here. -->
</form>

Es ist wichtig, dass ein Textfeld des Passwortfeld vorangestellt werden. Andernfalls ist die automatische Füllung kann in einigen Fällen nicht verhindert werden.

Es ist wichtig, dass der Wert sowohl der Text und Passwort-Felder nicht leer sein, die Standardwerte zu verhindern, dass in einigen Fällen überschrieben werden.

Es ist wichtig, dass diese beiden Felder sind vor dem „echten“ Kennworttyp Bereich (e) in Form.

Bei neueren Browsern, die HTML 5.3-konforme die zur automatischen Vervollständigung Attributwert „new-password“ sind sollte funktionieren.

<form>
  <input type="text" name="username" value="" />
  <input type="password" name="password" value="" autocomplete="new-password" />
</form>

Eine Kombination der beiden Methoden kann verwendet werden, die älteren und neueren Browsern zu unterstützen.

<form>
  <div style="display:none">
    <input type="text" readonly tabindex="-1" />
    <input type="password" readonly tabindex="-1" />
  </div>
  <!-- Place the form elements below here. -->
  <input type="text" name="username" value="" />
  <input type="password" name="password" value="" autocomplete="new-password" />
</form>
Beantwortet am 07/07/2018 um 18:20
quelle vom benutzer

stimmen
0

Um dieses Problem zu lösen, habe ich einige CSS-Tricks und die folgenden Werke für mich eingesetzt.

input {
    text-security:disc;
    -webkit-text-security:disc;
    -mox-text-security:disc;
}

Bitte lesen Sie diesen Artikel für weitere Details.

Beantwortet am 11/05/2018 um 13:19
quelle vom benutzer

stimmen
0

Ich konnte Chrome 66 aus dem automatischen Füllen durch Hinzufügen von zwei gefälschten Eingängen stoppen und sie Position absolut:

<form style="position: relative">
  <div style="position: absolute; top: -999px; left: -999px;">
    <input name="username" type="text" />
    <input name="password" type="password" />
  </div>
  <input name="username" type="text" />
  <input name="password" type="password" />

Zuerst habe ich versucht , das Hinzufügen display:none;zu den Eingängen , aber Chrome ignorierte sie und autofilled die sichtbaren.

Beantwortet am 08/05/2018 um 22:07
quelle vom benutzer

stimmen
0

Keine falschen Eingaben, kein Javascript!

Es gibt keine Möglichkeit autofill deaktiviere konsequent in allen Browsern. Ich habe all die verschiedenen Vorschläge versucht, und keiner von ihnen in allen Browsern. Der einzige Weg ist mit durchaus nicht Passwort-Eingabe. Hier ist, was ich kam mit:

<style type="text/css">
    @font-face {
        font-family: 'PasswordDots';
        url('/assets/font/password-dots.woff2?v=1.0.0') format('woff2');
        font-weight: normal;
        font-style: normal;
    }

    input.password {
        font-family: 'PasswordDots' !important;
        font-size: 8px !important;
    }
</style>

<input class="password" type="text" spellcheck="false" />

Download: Passwort-dots.woff2

Hier ist, wie mein Endergebnis wie folgt aussieht:

Kennwort Mask

Der negativer Nebeneffekt ist, dass es möglich ist Klartext von der Eingabe zu kopieren, wenn es möglich sein soll, dass bei einigen JS zu verhindern.

Beantwortet am 13/04/2018 um 06:35
quelle vom benutzer

stimmen
0

Endlich bekam ich zum ersten Mal eine Lösung 2 versteckte Textfelder hinzufügen

und fügen Sie einfach eine Winkel Richtlinie wie folgt aus

 (function () {

    'use strict';

    appname.directive('changePasswordType', directive);

    directive.$inject = ['$timeout', '$rootScope',  '$cookies'];

    function directive($timeout,  $rootScope, $cookies) {
        var directive = {
            link: link,
            restrict: 'A'
        };

        return directive;

        function link(scope,element) {
            var process = function () {
                var elem =element[0];
                elem.value.length > 0 ? element[0].setAttribute("type", "password") :
                element[0].setAttribute("type", "text");
            }

            element.bind('input', function () {
                process();
            });

            element.bind('keyup', function () {
                process();
            });
        }
    }
})()

dann verwenden Sie es in Ihrem Textfeld, in dem Sie müssen Auto-Vervollständigen verhindern

    <input type="text" style="display:none">\\can avoid this 2 lines
    <input type="password" style="display:none">
    <input type="text"  autocomplete="new-password" change-password-type>

Wichtiger Hinweis: Vergessen Sie nicht , jquery aufzunehmen, und legen Sie type ="text"zunächst

Beantwortet am 26/03/2018 um 12:07
quelle vom benutzer

stimmen
0

Sie können auch eine Verwendung anstelle eines Eingangs der automatischen Vervollständigung Teil zu überspringen.

Beantwortet am 19/03/2018 um 12:18
quelle vom benutzer

stimmen
0

Sie können die automatische Vervollständigung = off verwenden in Eingang steuert Auto-Vervollständigung zu vermeiden

Beispielsweise:

<input type=text name="test" autocomplete="off" />

wenn der obige Code nicht funktioniert, dann versuchen, diese Attribute autocapitalize = „off“ zur automatischen Vervollständigung = „off“ hinzufügen

Beantwortet am 03/03/2018 um 00:47
quelle vom benutzer

stimmen
0

Sie können die automatische Vervollständigung = off verwenden in Eingang steuert Auto-Vervollständigung zu vermeiden

Beispielsweise:

<input type=text name="test" autocomplete="off" />

wenn der obige Code funktioniert nicht versucht dann diese Attribute auch hinzufügen

autocapitalize = "off" zur automatischen Vervollständigung = "off"

oder

Ändern input type-Attribut type = "suchen". Google nicht auto-fill gilt mit einer Art Suche auf Eingaben.

Beantwortet am 03/03/2018 um 00:35
quelle vom benutzer

stimmen
0

Fest. müssen nur über reale Eingabefeld hinzufügen

https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion - MDN https://medium.com/paul-jaworski/turning-off-autocomplete-in-chrome-ee3ff8ef0908 - mittel auf EDGE getestet, Chrome (neueste v63), Firefox Quantum (57.0.4 64-бит), Firefox (52.2.0) gefälschte Felder sind eine Abhilfe für Chrom / Oper autofill die falschen Felder bekommen

 const fakeInputStyle = {opacity: 0, float: 'left', border: 'none', height: '0', width: '0'}

 <input type="password" name='fake-password' autoComplete='new-password' tabIndex='-1' style={fakeInputSyle} />

<TextField
  name='userName'
  autoComplete='nope'
  ... 
/>

<TextField
      name='password'
      autoComplete='new-password'
      ... 
    />
Beantwortet am 19/01/2018 um 12:57
quelle vom benutzer

stimmen
0

Keine der Antworten arbeitete auf allen Browsern ich getestet. Aufbauend auf bereits Antworten zur Verfügung gestellt, das ist , was ich mit endete, (getestet) auf Chrome 61 , Microsoft Edge 40 (EdgeHTML 15), 11 IE , Firefox 57 , Opera 49 und Safari 5.1 . Es ist verrückt als Ergebnis vieler Studien; aber es ist für mich nicht funktioniert.

<form autocomplete="off">
    ...
    <input type="password" readonly autocomplete="off" id="Password" name="Password" onblur="this.setAttribute('readonly');" onfocus="this.removeAttribute('readonly');" onfocusin="this.removeAttribute('readonly');" onfocusout="this.setAttribute('readonly');" />
    ...
</form> 

<script type="text/javascript">
    $(function () {           
        $('input#Password').val('');
        $('input#Password').on('focus', function () {
        if (!$(this).val() || $(this).val().length < 2) {
            $(this).attr('type', 'text');
        }
        else {
            $(this).attr('type', 'password');
        }
    });
    $('input#Password').on('keyup', function () {
        if (!$(this).val() || $(this).val().length < 2) {
            $(this).attr('type', 'text');
        }
        else {
            $(this).attr('type', 'password');
        }
    });
    $('input#Password').on('keydown', function () {
        if (!$(this).val() || $(this).val().length < 2) {
            $(this).attr('type', 'text');
        }
        else {
            $(this).attr('type', 'password');
        }
    });
</script>
Beantwortet am 22/11/2017 um 08:28
quelle vom benutzer

stimmen
0

Autocomplete = ‚off‘ nicht für mich arbeiten, jedenfalls habe ich den Wert Attribut des Eingabefeldes zu einem Raum also <input type='text' name='username' value=" ">, der die Standardeingabezeichen in einen Raum gesetzt, und da der Benutzername auch leer war wurde das Passwort gelöscht.

Beantwortet am 12/03/2017 um 19:17
quelle vom benutzer

stimmen
-14

Warum würden Sie Ihre Benutzer das Leben weniger bequem machen?

„Passwörter / Kreditkartendatum / usw. sollten nicht gespeichert werden“ ist ein schlechtes Argument: mit dem automatischen Vervollständigung auf, Browser in Mac OS X speichert diese Werte in einer verschlüsselten Datenbank mit pro-Anwendung Berechtigungen. Im Gegensatz dazu , was ist die realistische Wirkung autocomplete=off? Der Benutzer wird es in einer unverschlüsselten Textdatei schreiben, oder besser noch, auf einem Post-it auf den Bildschirm beiliegt.

Gute Sache ist es Bookmarklets wie die Antti erwähnt, und Patches der Motor machen das Attribut ganz ignorieren .

Im Ernst, ich fordere Sie mit diesem Attribut zu überdenken. Es ist nicht jeder profitieren.

Beantwortet am 08/09/2008 um 20:42
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more