文本框自动完成的去除方法

14

我网页上有几个文本框,但是自动填充功能很烦人。有没有办法从我的网站上移除它?


4
FYI/ 自动补全是浏览器的首选项,许多人,包括我在内,认为这些偏好应该由用户自行决定。我相信这就是你的问题被投票降低的原因,不确定。用户应该解释他们的投票理由。 - Matt K
@Matt K:对于常规表单,是的,但对于密码字段和其他一些情况,自动填充会出问题。这是一个有效的问题,应该澄清它必须是一个跨浏览器的修复。 - Kalle H. Väravas
1
我认为这是一个非常合理的问题,我可以看到很多禁用它的好理由。 - JasonFruit
我的使用情况是,我有一个表单,如果用户愿意,我希望他们可以通过自动完成来填写,但我有一个确认电子邮件文本框。我想确保输入的电子邮件地址是正确的,因此在这里使用自动完成是适得其反的。我希望这可以提示用户检查自动完成可能添加的电子邮件地址。因此,这个问题是完全合理的。 - Liam
9个回答

31

自动完成

自 HTML 5 开始,自动完成是由所有主流浏览器支持的 表单/输入属性

<form name="form1" id="form1" method="post" autocomplete="off" action="#">

此外,您可以在这里查看有关其使用的更多信息:


自动大写和自动纠正

如果您正在准备一个网络应用程序或任何其他智能手机友好的网页,您可能想知道如何:禁用自动完成、自动大写和自动纠正

<input autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />

<textarea autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"></textarea>

请查看w3schools.com/tags/att_input_autocomplete.asp获取更多信息。 - stomy

3
autocomplete="off" 作为表单属性添加,它将应用于表单内的所有字段。
例如:<form action="#" autocomplete="off">

3

以下是如何实现此操作的方法。

autocomplete="new-text"

在您的输入框或文本区域内添加:

2

autocomplete="off" 可以添加到输入字段中作为非标准属性。虽然不确定除IE之外的浏览器是否支持它。


自动完成在W3C规范中,因此非常符合标准字段。 - Liam
这并不是HTML4的标准,因为这个答案是在那个时代写的。相关SO问题链接 - Matt K

1

autocomplete="off"不支持,可以使用'autocomplete="new-password"'代替。


0
你可以在页面加载后使用jQuery添加自动完成属性。这是我发现迫使Chrome监听的最好方式。
<script type="text/javascript" language="javascript">
    jQuery(function() {
        jQuery('#my_input').attr('autocomplete', 'off');
    });
</script>

<input type="text" name="my_input" id="my_input">

0

最简单的方法: 删除name属性,然后在autocomplete中始终添加一个不同的字符串。

$(document).ready(function () {
    setTimeout(function () {
        var randomicAtomic = Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10);
        $('input[type=text]').removeAttr('name');
        $('input[type=text]').attr('autocomplete', randomicAtomic);
    }, 1000);
})

0

在 Html.BeginForm 中使用 autocomplete = "off"

 @using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { @id = "myForm", @autocomplete = "off" }))
{
 @Html.EditorFor(model => model.field, new { htmlAttributes = new { @class = "text-box form-control" } })
<input type="submit" value="Save" />
}

0

autocomplete="off" 在 Firefox 中有效,但在 Ubuntu 上的 Chromium 浏览器中无效,因此需要检查浏览器是否为 Chromium 浏览器,如果是,则使用autocomplete="disabled",否则使用autocomplete="off"

var is_chrome = /chrome/.test( navigator.userAgent.toLowerCase() );
$("#mobile").prop("autocomplete", is_chrome ? 'disabled' :  'off');

虽然这段代码可能回答了问题,但提供有关它如何以及/或为什么解决问题的附加上下文将改善答案的长期价值。 - Donald Duck
autocomplete="off" 属性在 Firefox 和 Chrome 中有效,但在 Ubuntu 的 Google Chromium 浏览器中无效。因此,我需要检查浏览器是否为 Chromium 或 Chrome,然后设置 autocomplete 属性的值为 disabled,否则为 off。 - Ramesh
你本来应该把那个编辑到你的答案里,但没关系,我已经帮你编辑好了。 - Donald Duck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接