我正在使用以下 ASP.NET 代码使我的输入框不使用自动完成功能:
<asp:TextBox ID="TextBoxID" AutoCompleteType="Disabled" runat="server"></asp:TextBox>
它适用于微软自己的 IE,但谷歌浏览器仍然允许自动完成。那么我做错了什么?
我正在使用以下 ASP.NET 代码使我的输入框不使用自动完成功能:
<asp:TextBox ID="TextBoxID" AutoCompleteType="Disabled" runat="server"></asp:TextBox>
它适用于微软自己的 IE,但谷歌浏览器仍然允许自动完成。那么我做错了什么?
对于 Chrome,autocomplete="off"
必须将规范放在form
标签上。
最新版本的谷歌浏览器强制自动填充,不管Autocomplete=off
.Some 以前的黑客不再起作用(34+ 版本)
我在 Google Chrome v36 上测试了以下代码。
解决方案 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”属性,并在 1ms 后将它们分配回来。把这个放进去document get ready
。
$('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);
});
在表单标签中放置 autocomplete=off 不再起作用。谷歌忽略它。
我通过重命名文本框解决了这个问题。不要在名称中使用任何谷歌可以提示自动完成它的东西(名称、地址、邮政编码等)。我已将 txtName 更改为 txtN 并停止自动完成。
如果这不起作用,请将 autocomplete="new-name" 直接放在文本框的属性中,而不是在表单上。
<asp:TextBox autocomplete="new-name" ID="txtName" runat="server"></asp:TextBox>