我一直在遇到几种形式的Chrome自动填充行为问题。
表单中的所有字段都有非常通用且准确的名称,例如“电子邮件”,“名称”或“密码”,并且它们也已autocomplete=”off”设置。
自动完成标记已成功禁用了自动完成行为,该行为会在您开始键入时出现一个下拉列表,但并未更改Chrome自动将字段填充为的值。
这种行为是可以的,除了chrome无法正确填写输入内容(例如,用电子邮件地址填充电话输入内容)。客户对此有所抱怨,因此已证实它是在多种情况下发生的,而不是我在计算机上本地完成的操作的某种结果。
我能想到的唯一当前解决方案是动态生成自定义输入名称,然后在后端提取值,但这似乎是解决此问题的一种很怪异的方法。是否有任何可更改自动填充行为的标记或怪癖可用来解决此问题?
对于新的Chrome版本,您只需autocomplete=”new-password”在密码字段中输入即可。我已经检查了,效果很好。
PS注意,Chrome会尝试从名称,id和它可能在字段周围得到的任何文本内容(包括标签和任意文本节点)推断出自动填充行为。如果street-address上下文中有自动填充令牌,Chrome会自动填充该令牌。启发式方法可能会造成很大的混乱,因为它有时仅在表单中有其他字段时才触发,而在表单中的字段太少时才触发。另请注意,autocomplete="no"这似乎可行,但autocomplete=”off”由于历史原因而不会。autocomplete="no"您是在告诉浏览器该字段应作为字段自动完成”no”。如果生成唯一的随机autocomplete名称,则会禁用自动完成。
street-address
autocomplete="no"
autocomplete
如果您的用户访问了错误的表单,则其自动填充信息可能已损坏。让他们手动进入并在Chrome中修复其自动填充信息可能是他们采取的必要措施。