如何在主要浏览器中禁用特定输入(或表单字段)的自动完成?


当前回答

如果您在JavaScript中动态设置autocomplete=“off”,Safari不会改变对自动完成的看法。然而,如果您在每个字段的基础上执行此操作,则会受到尊重。

$(':input', $formElement).attr('autocomplete', 'off');

其他回答

您可以在输入控件中使用autocomplete=off来避免自动完成

例如:

<input type=text name="test" autocomplete="off" />

如果上面的代码不起作用,那么也尝试添加这些属性

autocapitalize="off" autocomplete="off"

or

将输入类型属性更改为type=“search”。谷歌不会对搜索类型的输入应用自动填充。

我尝试了几乎所有的答案,但新版本的Chrome很聪明;如果你写

autocomplete="randomstring" or autocomplete="rutjfkde"

它会自动将其转换为

autocomplete="off"

当输入控件接收到焦点时。

所以,我使用jQuery完成了这项工作,我的解决方案如下。

$("input[type=text], input[type=number], input[type=email], input[type=password]").focus(function (e) {
    $(this).attr("autocomplete", "new-password");
})

这是最简单的,对于表单上的任何数量的控件都可以做到。

添加autocomplete=“off”不会使其停止。

将输入类型属性更改为type=“search”。谷歌不会对搜索类型的输入应用自动填充。

为了解决这个问题,我使用了一些CSS技巧和以下工作。

input {
    text-security:disc;
    -webkit-text-security:disc;
    -mox-text-security:disc;
}

请阅读本文了解更多详情。

我一直在尝试无尽的解决方案,然后我发现:

不用autocomplete=“off”,只需使用autocomplete==“false”

就这么简单,它在谷歌Chrome中也很有魅力!