input type text
ユーザーがアカウント設定ページでメールとパスワードを変更できるようにしています。
Chromeの自動入力を停止するにはどうすればよいですか。
Chromeはログインinput data
ページから記憶し、アカウント設定ページに自動入力します。
アカウント設定ページでChromeの自動入力でinput
メールアドレスとパスワードを変更する
input type text
ユーザーがアカウント設定ページでメールとパスワードを変更できるようにしています。
Chromeの自動入力を停止するにはどうすればよいですか。
Chromeはログインinput data
ページから記憶し、アカウント設定ページに自動入力します。
アカウント設定ページでChromeの自動入力でinput
メールアドレスとパスワードを変更する
これをハックに依存することはもうありません。autocomplete を new-password に設定すると、意図したとおりに機能します。
<input type="password" name="pwd" autocomplete="new-password">
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autocomplete
解決策 1:タグ
の下に 2 行のコードを配置する<form ..>
とうまくいきます。
<form id="form1" runat="server" >
<input style="display:none" type="text" name="fakeusernameremembered"/>
<input style="display:none" type="password" name="fakepasswordremembered"/>
...
解決策 2:要素から「name」属性と「id」属性を削除し、1 ミリ秒後にそれらを割り当てます。これを書類に入れて準備します。
$('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);
});
解決策 3: Chrome 60.0.3112.101 でテスト済み
<input type="password" name="pwd" autocomplete="new-password">
この問題は、バージョン 55.0.2883.87 m の時点でも存在します。(Windows 10 上)
フォームにオートコンプリート属性を設定するなどのソリューション
または、偽の入力フィールドを追加して送信前に name 属性を削除しても機能しなくなりました。これは、削除時に Chrome がそれらを無視するか、即座にオートコンプリートするためです。
現在意図したとおりに機能させる唯一の方法は、autocomplete 属性を「new-password」に設定することです。
<input type="text" name="text" autocomplete="new-password">
非パスワードタイプの入力でも。
Chrome の最新バージョン (46.0.2490.86) では、動作が再び変更されたようです。今回、AutoFill は、ここで提案されているautocomplete
、またはreadonly
その他の回避策とは関係ありません (およびこれらのバグ レポートhttps://code.google.com/p/chromium/issues/detail?id=468153、https://bugs.chromium .org/p/chromium/issues/detail?id=587466 )
代わりに、AutoFill は入力ボックスの横にあるラベルを見て、それに基づいて (ID と名前と同様に) AutoFill を生成するようになりました。大きな手がかりは、AutoFill が実際に一度に複数のフィールド (たとえば、Street、Suburb、State) を入力する方法です。フィールド間の空間的な関係を識別するために、いくつかの手法 (ラベル、名前、ID) を使用しているようです。
したがって、回避策は、非表示のスパン内のラベルに迷惑テキストを挿入することです...
S<span style="display:none">_</span>uburb:
...さらに、ID と名前を難読化/削除します。これが、Suburb AutoFill を妨げていた唯一のことでした。
残念ながらautocomplete="off"
、私にはうまくいきませんでした(もう)。だからここに私の解決策があります:
最初に要素からname
" " および " " 属性を読み取ってから削除します。id
次に、1 ミリ秒後に、以前に読み取った値でこれらの属性を再度設定します。私にとってはうまくいきます:)
<form autocomplete="off"><br />
<input type="text" name="username" id="username" /><br />
<input type="password" name="password" id="password" /><br />
</form>
<pre>
$('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);
});
</pre>
autocomplete="new-password" を設定することで機能します。テストの前に、まず閲覧データを消去します
Chrome は autocomplete="anything" と隠しフィールドの両方を無視します。HTML/CSS の回避策は、実際のパスワード フィールドの前に絶対位置のパスワード フィールドを使用することです。
<input type="text" name="username" required>
<input style="visibility: hidden; position: absolute; left:-99999px" type="password" name="fakepasswordfieldtoturnoffautocomplete">
<input type="password" name="password" required>
編集:
他の重複した質問の他の複数の回答で言及されているように、これまでで最もエレガントな実用的なソリューションは次のとおりです。
<input type="password" readonly onfocus="this.removeAttribute('readonly');"/>
これを解決しようとしてほとんど窓から飛び出しました... Googleは現在、オートコンプリートのオンとオフを無視しているようです。私は古い修正で使用していました(偽の隠しパスワードフィールドなど-これも機能しなくなりました)。Living Standard 仕様に基づく - 代わりに自動入力トークンを使用する必要があります。適切なユースケースのコンテキストでそれらを使用する必要があります。これが役に立てば幸いです。
これを試して:
<div id="form_container">
<input type="text" name="username" autocomplete="off">
<input type="password" name="pwd" autocomplete="off">
<input tytep="submit" name="login" id="login" value="Log In">
</div>`
jquery コード:
jQuery("#login").click(function(){
jQuery("#form_container").wrap('<form method="post"></form>');
jQuery("form").submit();
});
入力フィールドをフォームにラップしないと、クロムのオートフィルは表示されません。
送信ボタンをクリックしたら、フォームの周りのフィールドを閉じて、フォームで a を起動するだけですsubmit()
。