如何在主要浏览器中禁用特定输入(或表单字段)的自动完成?
当前回答
要禁用表单中文本的自动完成,请使用和元素的自动完成属性。您需要该属性的“off”值。
这可以在完整表单或特定元素中完成:
将autocomplete=“off”添加到元素以禁用整个表单的自动完成。为表单的特定元素添加autocomplete=“off”。
form
<form action="#" method="GET" autocomplete="off">
</form>
输入
<input type="text" name="Name" placeholder="First Name" autocomplete="off">
其他回答
Chrome计划支持这一点。
目前,最好的建议是使用很少自动完成的输入类型。
Chrome讨论
<input type='search' name="whatever" />
要与Firefox兼容,请使用normalautocomplete='off'
<input type='search' name="whatever" autocomplete='off' />
这就是:
函数turnOnPasswordStyle(){$('#inputpassword').attr('type',“password”);}<input-onput=“turnOnPasswordStyle()”id=“inputpassword”type=“text”>
我刚刚遇到了这个问题,并尝试了几次失败,但这一次对我有效(在MDN上找到):
在某些情况下,浏览器将继续建议自动完成值即使autocomplete属性设置为off。这是意外的对于开发人员来说,这种行为可能非常令人困惑。真正的诀窍强制无完成是将随机字符串分配给属性像这样:
autocomplete="nope"
在尝试了所有解决方案之后(有些解决方案部分奏效,禁用自动填充但不自动完成,有些根本不奏效),我找到了截至2020年的最佳解决方案,将type=“search”和autocomplete=“off”添加到输入元素中。这样地:
<input type="search" /> or <input type="search" autocomplete="off" />
还要确保表单元素具有autocomplete=“off”。这非常有效,并禁用自动完成和自动填充。
此外,如果您使用type=“email”或任何其他文本类型,则需要添加autocomplete=“new email”,这将完全禁用两者。type=“password”也是如此。只需将“new-”前缀与类型一起添加到自动完成中即可。这样地:
<input type="email" autocomplete="new-email" />
<input type="password" autocomplete="new-password" />
您可以在输入中使用它。
例如
<input type=text name="test" autocomplete="off" />