Frage

Ist es möglich, die Funktion zum automatischen Ausfüllen in Textfeldern mithilfe von Code, um selektiv zu deaktivieren?

ich meine eigenen Code in ASP.Net AJAX Entwicklung für den Vorschlag in der Datenbank zu suchen, und ich möchte die Browser-Vorschläge erscheinen verhindern, wenn der Benutzer die Eingabe in das Textfeld beginnt.

Ich bin auf der Suche nach einer Lösung, die in den meisten modernen Browsern (IE 7 & 8, Firefox, Safari und Chrome) funktioniert. Es ist in Ordnung, wenn die Abhilfe in Javascript ist.

War es hilfreich?

Lösung

Sehen Sie sich das Autocomplete HTML-Attribut (auf Form oder Eingangs-Tags).

<form [...] autocomplete="off"> [...] </form>

W3C> Automatische Vervollständigung Attribut

Edit:

Heute - aus den Kommentaren - Web-Browser respektiert nicht immer das Autocomplete-Tag definiert Verhalten. Diese Nichteinhaltung mit einem wenig JavaScript-Code umgeben sein könnte, aber Sie sollten darüber nachdenken, Sie dies tun wollen, bevor verwenden.

Zuerst Felder werden während des Ladens der Seite gefüllt werden und werden nur einmal die Seite zu laden, entleert werden. Die Nutzer werden sich fragen, warum das Feld geleert wurde.

Zweitens wird diese anderen Web-Browser Mechanismen zurückzusetzen, wie die Autofill eines Feldes, wenn Sie auf die vorherige Seite zurück.

jQuery( function()
{
  $("input[autocomplete=off]").val( "" );
} );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form method="post" action="">
  <div class="form-group">
    <label for="username">Username</label>
    <input type="text" id="username" name="username" value="John" autocomplete="off">
  </div>
  <div class="form-group">
    <label for="password">Password</label>
    <input type="password" id="password" name="password" value="qwerty" autocomplete="off">
  </div>
  <input type="submit" value="Login">
</form>

Andere Tipps

können Sie es in Ihre Eingaben setzen:

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

oder in jquery

$(":input").attr("autocomplete","off"); 

Es gibt zwei Lösungen für dieses Problem. Ich habe folgenden Code in Google Chrome v36 getestet. Neueste Version von Google Chrome zwingt Autofill unabhängig von der Autocomplete=off.Some der vorherigen Hacks funktionieren nicht mehr (34+ Versionen)

Lösung 1:

Setzen Sie folgenden Code unter unter <form ..>-Tag.

<form id="form1" runat="server" >
<input style="display:none" type="text" name="fakeusernameremembered"/>
<input style="display:none" type="password" name="fakepasswordremembered"/>

...

Lesen Sie mehr

Lösung 2:

$('form[autocomplete="off"] input, input[autocomplete="off"]').each(function () {

                var input = this;
                var name = $(input).attr('name');
                var id = $(input).attr('id');

                $(input).removeAttr('name');
                $(input).removeAttr('id');

                setTimeout(function () {
                    $(input).attr('name', name);
                    $(input).attr('id', id);
                }, 1);
            });

Es entfernt „name“ und „id“ Attribute von Elementen und ordnet sie nach 1ms zurück.

ein autocomplete=off Attribut auf das HTML-Element input Hinzufügen sollte das tun.

Dies sollte in jedem Browser

arbeiten
    <script type="text/javascript">
        var c = document.getElementById("<%=TextBox1.ClientID %>");
        c.select =
        function (event, ui) 
        { this.value = ""; return false; }
    </script>

Fügen Sie den AutoCompleteType="Disabled" auf Ihre Textbox

Meine Abhilfe ist, das Passwort-Feld ein normales Textfeld zu machen, dann jquery verwendet es in Passwortfeld auf Fokus zu aktivieren:

asp:TextBox runat="server" ID="txtUsername" />
<asp:TextBox runat="server" ID="txtPassword" />
<script>
    $("#txtPassword").focus(function () {
        $("#txtPassword").prop('type', 'password');
    });
</script>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top