27

私はこのコードを持っています:

html:

<input id="register_username" type="text">
<input id="register_password" type="text">
<input id="register_repeatpassword" type="text">
<input id="register_email" type="text">

Jクエリ:

$(document).ready(function(){
    $('#register_username').attr('autocomplete','off');
    $('#register_password').attr('autocomplete','off');
    $('#register_repeatpassword').attr('autocomplete','off');
    $('#register_email').attr('autocomplete','off');
    });

一部のブラウザーでオフになっているオートコンプリート機能を無効にして、実際にユーザーにフィールド全体を入力させたいのですが、コードが機能せず、ドロップダウン メニューがまだ表示され、ユーザーは以前に入力したものを選択できます。私も使用しようとしましautocomplete="off"たが、何も起こりませんでした。ここで何が間違っていますか?

4

11 に答える 11

33

追加するだけです:

autocomplete="off"

要素への属性としてINPUT、f.ex:

<input autocomplete="off" id="register_username" type="text" name="username">
于 2012-12-29T02:02:51.870 に答える
19

jQueryのバージョン:

$("#register_username").attr("autocomplete", "off");
于 2014-03-07T17:45:34.243 に答える
6

このフィドルをチェックしてください

 document.getElementById("register_username").autocomplete="off"
于 2012-12-29T07:58:03.860 に答える
4

私は同意しますが、autocomplete="off"広くサポートされるべきであり、最終的な解決策ですが、オートコンプリート属性の HTML5 仕様の結果として機能しない可能性があります。

オートコンプリート メカニズムは、ユーザーが要素の値を変更したかのように動作するユーザー エージェントによって実装する必要があり、要素が変更可能なときに(たとえば、要素がドキュメントに挿入された直後や、ユーザーがエージェントは解析を停止します)。

これは、要素の「元の」属性である必要があり、レンダリング後に追加できないことを意味します。また、ほとんどのブラウザーは新しい仕様1を実装しているため、上記の仕様に基づいて実装を修正する前に、JavaScript で許可した可能性があります。

まだ行っていない場合は、[おそらく] ドキュメントの準備が整った状態で jQuery に頼るのではなく、属性をコントロールに直接追加してみてください。

1 HTML5 は標準ではないため、ここでは仕様を大まかに使用していますが、多くのブラウザーがより具体的な機能のいくつかを実装しています。IE5からautocomplete存在しているため、おそらく安全な実装と見なすことができるものの 1 つです。

于 2012-12-29T02:11:51.790 に答える
2
<form id='myForm'>
    <input id="register_username" type="text">
    <input id="register_password" type="text">
    <input id="register_repeatpassword" type="text">
    <input id="register_email" type="text">
</form>
$(document).ready(function(){
    $('#myForm').on( 'focus', ':input', function(){
        $(this).attr( 'autocomplete', 'off' );
    });
});
于 2015-04-27T12:24:40.360 に答える