我在一些表单上遇到了chrome自动填充行为的问题
表单中的字段都有非常通用和准确的名称,例如“电子邮件”、“名称”或“密码”,并且它们还设置了autocomplete=“off”
autocomplete标志已成功禁用autocomplete行为,即在您开始键入时显示值下拉列表,但未更改Chrome自动填充字段的值
除了chrome不正确地填充输入之外,这种行为是可以的,例如用电子邮件地址填充电话输入。客户对此表示不满,因此已证实在多种情况下都会发生这种情况,而不是我在本地机器上所做的某种结果
目前我能想到的唯一解决方案是动态生成自定义输入名称,然后在后端提取值,但这似乎是解决这个问题的一种非常有技巧的方法。是否有更改自动填充行为的标记或怪癖可用于修复此问题
2021年1月:autocomplete=";关「现在可以正常工作(在Chrome 88 macOS上测试)
要使其工作,请确保在表单标记中包含输入标记
2020年9月:autocomplete=";“镀铬”禁用Chrome自动填充
原始答案,2015:
对于新的Chrome版本,您可以将autocomplete=";“新密码”,仅此而已。我检查过了,很好用
在本次讨论中,从Chrome developer获得了以下提示:
https://bugs.chromium.org/p/chromium/issues/detail?id=370363#c7
另请注意,Chrome将尝试从名称、id和任何文本内容(包括标签和任意文本节点)推断自动填充行为。如果上下文中有一个自动完成标记,如街道地址,Chrome将自动填充该标记。启发式可能非常混乱,因为它有时仅在表单中有其他字段时触发,或者在表单中字段太少时不触发。还要注意,autocomplete=";否"似乎可以工作,但autocomplete=";关「将不会更改自动完成=";否"是否告诉浏览器此字段应作为名为的字段自动完成;否"。如果生成唯一的随机autocomplete名称,则禁用自动完成
如果用户访问了不正确的表单,则其自动填充信息可能已损坏。让他们手动进入并修复Chrome中的自动填充信息可能是他们需要采取的必要措施