首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >禁用Firefox的自动填充

禁用Firefox的自动填充
EN

Stack Overflow用户
提问于 2011-06-27 09:57:20
回答 11查看 23.8K关注 0票数 23

有没有可能在不禁用自动完成的情况下禁用火狐的自动填充功能?

我知道我能做到:

代码语言:javascript
复制
autocomplete="off"

但我不想禁用自动完成功能,只想禁用自动填充功能。

Firefox正在填充我们的一些隐藏字段,这些字段应该是空的

当用户刷新页面时,这主要是一个问题。表单字段将使用刷新前的值重新填充。这是一个问题的一个例子是老式的占位符。在这里我们用值填充字段,并在提交时删除它。值在刷新时被重新填充,我们不知道它是占位符还是use值。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-07-09 04:20:34

如果问题是FF在用户刷新时填充字段,这实际上是Firefox的一个功能,它试图帮助用户在意外刷新的情况下,使他们不会丢失他们输入的任何内容。我不认为你可以用HTML覆盖它。您可以使用JavaScript在页面加载时清除/重置所有相关的表单值。如果表单上的form.reset()不起作用,则必须遍历表单元素并将其清除,如下所示:

代码语言:javascript
复制
for (i = 0; i < frm_elements.length; i++)
{
    field_type = frm_elements[i].type.toLowerCase();
    switch (field_type)
    {
    case "text":
    case "password":
    case "textarea":
    case "hidden":
        frm_elements[i].value = "";
        break;
    case "radio":
    case "checkbox":
        if (frm_elements[i].checked)
        {
            frm_elements[i].checked = false;
        }
        break;
    case "select-one":
    case "select-multi":
        frm_elements[i].selectedIndex = -1;
        break;
    default:
        break;
    }
}
票数 10
EN

Stack Overflow用户

发布于 2016-08-24 03:55:21

在实际的用户名字段和实际的密码字段之间放置两个虚拟字段对我来说很有效,例如:

代码语言:javascript
复制
<input name = "Username" type="text" autocomplete="off">
<input name = "DummyUsername" type="text" style="display:none;">
<input name = "DummyPassword" type="password" style="display:none;">
<input name = "Password" type="password" autocomplete="new-password">

这阻止了用户名的自动填充和密码的自动填充。

新密码“autocomplete=-password”显然没有完全实现,但可以帮助某些浏览器。我怀疑它对FireFox有帮助,但它会在未来的版本中出现,以防该功能被更广泛地采用。

票数 11
EN

Stack Overflow用户

发布于 2011-06-27 10:02:11

火狐只支持表单上的autocomplete="off",而不是单独的元素(不像IE)。

另一种选择是将字段名称更改为奇怪的名称,如name="_u_sern_ame",以混淆任何字段识别系统,如果您想要禁用某人详细信息的自动填充。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6487970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档