web-dev-qa-db-ja.com

Chrome 66のオートコンプリートを無効にする

chrome 66の場合、以前使用していたようなテキスト入力のオートコンプリートを無効にする方法が見つかりませんでした。autocomplete="off"およびautocomplete="new-password"はChrome 63まで有効でしたが、もう機能しません。

この機能を無効にする新しい方法はありますか?

よろしくお願いします!

10
jojo____

これに遭遇しました-Googleはフィールドidまたはnameを調べて、そのフィールドのデータが保存されているかどうかを判断します。サイトの作成者として、ランダムに生成された名前/ IDを使用するか、フィールドにautocomplete=<random string>を追加します。

この遊び場を参照してください: https://jsfiddle.net/mfdc22pz/1/

ところでChrome Canary(68)はこのバグを修正しました!

要するに:name="foo_90553-4"のようなランダムタグを追加します。

5
Moos

少しjQueryを使用して解決しました(ただし、単純なJavaScriptを使用できます)。

問題は、chromeがフィールドのnameおよび/またはidを調べることです。私が見つけた唯一の解決策は、それらを削除することです属性、フィールドの実際の名前でdata-name attributeを追加し、JavaScriptを使用して送信後にname属性を再アタッチします。

例があります

<form onsubmit="return formSubmit(this);" autocomplete="off">
    <input type="text" data-name="dateStart" class="form-control" />
</form>


<script>
function formSubmit(form) {
  console.log(form);
  $(form).find('.form-control').each(function(){
    $(this).attr('name', $(this).data('name'));
  });
  console.log(form);
  query = jQuery(form).serialize();
  window.open("/YOUR_URL/?" + query, "_self");
  return false;
};
</script>
2
Dario Latini

同じ問題が発生しました。目に見えない入力の挿入を回避するには、ページの最初の入力のようにします。

[HTML] ... ... [css] ... .invisible_input {height:0.1px; position:absolute; margin-top:-500px;} ...

chrome developerからの回答を待っています:/これがお役に立てば幸いです! enter image description here

1
K.Dinh

私にとって効果的なのは、パスワードマスクを装った非パスワード入力を使用することです。実際のパスワードフィールドでオートコンプリートをオフにするようにブラウザーベンダーと闘うと、おそらくイライラすることになります。

これがサンドボックスです: https://codesandbox.io/s/yp3pyl4rkv

より多くの機能を備えた同様のアプローチは https://github.com/karaggeorge/react-better-password にあります

0
eug