【问题标题】:Can I disallow web browser autocomplete?我可以禁止网络浏览器自动完成吗?
【发布时间】:2010-10-27 23:39:43
【问题描述】:

您知道浏览器如何自动完成文本框吗?显然这让用户感到困惑。他们将其视为只有有限选项的简短列表。

有人知道如何禁用自动完成功能吗?

【问题讨论】:

标签: html forms autocomplete


【解决方案1】:

基本上不,你不能。您可以设置因浏览器而异的各种属性(甚至是浏览器版本,感谢 Microsoft),您可以使用 javascript 玩游戏,但最终无法保证字段不会意外或故意自动完成当前或未来版本的浏览器。如果您被告知要实施此操作,您最好的选择是应用一两个特定于浏览器的修复程序,然后将这些特定版本列为推荐(或如果您想成为刻薄和疏远客户,则需要)浏览器来使用您的网站。

【讨论】:

    【解决方案2】:

    禁用自动完成的正确方法是这样的:

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

    <form autocomplete="off" ... >
    

    MSDN:autocomplete Property

    Mozilla:How to Turn Off Form Autocompletion

    适用浏览器版本:网景 6.2 (Mozilla 0.9.4) 或更高版本。 IE 5 或更高版本。 ...

    此表单属性不属于任何 Web 标准,但首次引入 在 Microsoft 的 Internet Explorer 5 中。 Netscape 在 6.2 版本中引入了它 -- 在以前的版本中,此属性被忽略。自动完成属性 是在银行的坚持下添加的 和发卡机构——但从未遵循 通过达到标准 认证。

    【讨论】:

    • 我知道也可以将属性 autocomplete="off" 放在表单级别。这是个好主意吗?
    【解决方案3】:

    有属性autocomplete。它目前是一个专有属性(introduced by Microsoft,但即将成为part of HTML 5

    <input type="text" id="year" name="year" autocomplete="off" ... />
    

    有关一些背景和其他信息,请参阅The autocomplete attribute and web documents using XHTML

    【讨论】:

    • 很高兴看到规范中提到了这一点
    【解决方案4】:

    您可以将autocomplete 属性添加到输入元素,但请注意,它对于低于 HTML 5 的任何内容都是专有的:

    <input type="text" id="year" name="year" autocomplete="off" />
    

    【讨论】:

      【解决方案5】:

      不要为 INPUT 标签使用通用名称/ID?

      <input type="text" id="year" name="year" ... />
      

      GUID 非常独特,对吧?

      <input type="text" id="1b3d0ea8-3562-4937-a3d3-c91041a17c8b" ... />
      

      维护代码会很有趣!

      【讨论】:

      • 这不能解决问题,您仍然会在框中获得最后输入值的列表,除非您每次呈现页面时都生成该 guid。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 2011-04-07
      • 2019-04-27
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多