停止Google Chrome自动填充输入

Ben*_*Ben 35 html google-chrome

我有一个input type text供用户在帐户设置页面中更改他们的电子邮件和密码.

如何阻止Chrome自动填充输入.

记得input data日志页面,并在账户设置页面它自动填充.

Chrome自动在帐户设置页面中填写input 更改我的电子邮件和密码

小智 58

我们不再依赖于黑客攻击.您可以将自动完成设置为新密码,它将按预期工作.

<input type="password" name="pwd" autocomplete="new-password">
Run Code Online (Sandbox Code Playgroud)

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autocomplete

  • 这仍然不适用于类型文本的输入类型... (7认同)

Roy*_*M J 30

您是否明确将值设置为空白?例如:

<input type="text" name="textfield" value="">
Run Code Online (Sandbox Code Playgroud)

这应该会阻止浏览器将数据放在不应该的位置.或者,您可以将自动填充属性添加到表单标记:

<form autocomplete="off" ...></form>
Run Code Online (Sandbox Code Playgroud)

  • 它不起作用 (51认同)
  • 它工作了一段时间,但自Chrome的最后几次更新以来,它已经停止工作了. (14认同)
  • 它不再有效 - 请更新你的答案! (7认同)
  • 这将不再适用于较新版本的Chrome.谷歌坚持要覆盖所有的解决方法,因为他们似乎不喜欢自动填充功能被禁用. (3认同)
  • 这太荒谬了.有用于逐场禁用自动完成的用例.Typeahead功能就是其中之一.现在由于Chrome中这个疯狂的错误,它自己的自动填充功能显示在从typeahead库生成的自动完成列表的顶部! (2认同)

San*_*ile 21

解决方案1: 在代码下放置2行代码可以解决问题<form ..>.

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

...
Run Code Online (Sandbox Code Playgroud)

阅读更多

解决方案2:它从元素中删除"name"和"id"属性,并在1ms后将其分配回来.把它放在文件准备好了.

$('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);
            });
Run Code Online (Sandbox Code Playgroud)

解决方案3:在Chrome 60.0.3112.101中测试

<input type="password" name="pwd" autocomplete="new-password">
Run Code Online (Sandbox Code Playgroud)

  • 它工作......"难以置信"谷歌!看起来他们正试图做IE多年来所做的事情 - 忽视标准.简直令人难以置信. (5认同)
  • 为我工作,我真的不知道为什么chrome不遵循自动完成属性? (3认同)
  • 在Chrome 49中不起作用. (2认同)

小智 11

从版本55.0.2883.87 m开始,此问题仍然存在.(在Windows 10上)

像在表单上设置自动完成属性的解决方案

或者在提交之前添加虚假输入字段并删除name属性不再起作用,因为Chrome会在删除时忽略或立即自动完成它们.

使其当前按预期工作的唯一方法是将autocomplete属性设置为"new-password"

<input type="text" name="text" autocomplete="new-password"> 
Run Code Online (Sandbox Code Playgroud)

即使是非密码类型的输入.