49

オートコンプリートが無効になっているフォームがありますが、機能せず、Firefox およびそれ以降のバージョンの chrome でオートコンプリートが有効になります。

<form method="post" autocomplete="off" action="">
    <ul class="field-set">
    <li>
        <label>Username:</label>
        <input type="text" name="acct" id="username" maxlength="100" size="20">
    </li>
    <li>
        <label>Password:</label>
        <input type="password" name="pswd" id="password" maxlength="16" size="20" >
    </li>
    <li>
        <input type="submit" class="button" value="Login" id="Login" name="Login">
    </li>
    </ul>
</form>

タイプをパスワードからテキストに変更すると、すべてのブラウザで機能します。誰でもこの問題を解決するのを助けることができますか?

4

29 に答える 29

57

フォームの読み込み中にフィールドを読み取り専用にすることができます。フィールドがフォーカスされている間、そのフィールドを編集可能に変更できます。これは、オートコンプリートを回避する最も簡単な方法です。

<input name="password" id="password" type="password" autocomplete="false" readonly onfocus="this.removeAttribute('readonly');" />
于 2015-05-20T08:50:25.627 に答える
36

同じ問題に直面したとき、パスワードフィールドの上に一時的なテキストボックスを作成して非表示にすることで解決しました

このような、

<form method="post" autocomplete="off" action="">
    <ul class="field-set">
    <li>
        <label>Username:</label>
        <input type="text" name="acct" id="username" maxlength="100" size="20">
    </li>
    <li>
        <label>Password:</label>
        <input type="text" style="display:none;">
        <input type="password" name="pswd" id="password" maxlength="16" size="20" >
    </li>
        ...
    </ul> </form>

usernameテキスト フィールドに、以前に入力した単語がドロップダウンに表示されないようにします。のような属性がないためnameid入力フィールド<input type="text" style="display:none;">には追加のパラメーターも送信されません。

これが良い習慣かどうかはわかりませんが、問題は解決します。

于 2014-05-12T10:08:26.110 に答える
15

autocomplete="new-password"パスワード入力フィールドに属性を追加するだけです。

について詳しく知るにはautocomplete:

于 2016-08-31T13:46:15.867 に答える
3

追加autocomplete="off"しても問題は解決しません。Chrome では無視されます。

入力タイプ属性を に変更しますtype="search"
Google は、検索タイプの入力にオートフィルを適用しません。

于 2015-10-28T16:35:53.420 に答える
3

これは絶対にやってはいけない

パスワードの補完を禁止して干渉することで、ユーザーの安全性が低下します。パスワード フィールドの正しいコーディングには、次のものが含まれている必要があります。

autocomplete="current-password"

ユーザーにパスワードを入力させるということは、パスワード マネージャーや複雑で一意の長いパスワードを使用するのではなく、正確に入力できる脆弱なパスワードを使用する必要があることを意味します。これに関する詳細な議論については、https ://www.ncsc.gov.uk/blog-post/let-them-paste-passwords を参照してください。

于 2020-02-14T11:03:27.693 に答える
2

私のソル:

<input oninput="turnOnPasswordStyle()" id="inputpassword" type="text">

function turnOnPasswordStyle(){
    $('#inputpassword').attr('type', "password");
}
于 2016-05-29T20:00:02.517 に答える
2

別のアプローチは、自動入力を防止するのではなく、ページの読み込み時にパスワード フィールドの値を消去することです。

jQuery では、次のようなものを追加するだけです。

$(function() { $('input[type="password"]').val(''); });
于 2019-02-12T05:10:00.233 に答える
2

password については、現在機能していません。

したがって、デフォルトではパスワードフィールドをテキストとして作成し、次の js コードを使用します。

$('#real-password').on('input', function(){
            if ($(this).val() !== '') {
                $(this).attr('type', 'password');
            } else {
                $(this).attr('type', 'text');
            }
   });

于 2017-06-07T09:35:45.180 に答える
0

他の提案を試してみたところ、この解決策が見つかりました-私の問題はEdgeにありました。オートコンプリート値にランダム文字列を使用してみましたが、上記で提案した他の方法で問題を解決できませんでした。後で問題がキャッシュにあることがわかったからです。

ブラウザのキャッシュをクリアすると役に立ちました。

于 2021-10-27T17:28:37.040 に答える