我有一个网站,结帐页面一直很漂亮。 最近,任何使用自动填充填写他的信息的客户都会将他的电子邮件地址转储到公司字段中。我们所做的任何改变都不会影响到这一点。我还可以使用哪些其他工具来深入了解这一点?
我们仍然不知道是什么导致了这个问题,但对于任何看到这个问题的人,我们最终制作了字段readonly
,以便自动填充不会填充它。然后我们写了一些关于焦点的JS,它变得活跃,用户可以手动填写它。
<input type="text" name="company" readonly="" onfocus="this.removeAttribute('readonly');">
发现自己遇到了类似的问题,自动完成属性就是在这种情况下使用的
<input type="text" name="fooBar" autocomplete="organization" >
exhaustive list of autocomplete/autofill tags for html form inputs
OP的问题可能已经解决(或者可能已经在最近的更新中再次出现!)但是从2019年初开始,您可以通过在show-autofill-type-predictions
中设置chrome://flags
标志,重新启动Chrome,然后查看标题来诊断其中的一些问题(工具提示)文本)用于输入有问题的输入。它将告诉您正在使用哪些信息来猜测字段的“类型”,以及应该使用哪种保存的数据来填充它。
我遇到了类似的问题,将“公司”字段放在“名称”字段下。那个公司的领域是自生的一年。它来自同一网站上的另一个表单,该表单在“名称”字段下方显示“生日”字段组。因此,chrome按此顺序存储其自动填充值。我最终改变了我的第二个表单字段顺序(遗憾的是它是我能做的最好的)。
您需要为输入标记添加名称。浏览器使用名称来标识应该进入该字段的信息。如果您愿意,也可以将其用于ID和占位符。试试这个:
<input type="text" name="company" id="company" placeholder="company">
如果仍然无效,您可以考虑关闭该特定字段的自动填充*:
<input type="text" name="company" id="company" placeholder="company" autocomplete="off">
*您还可以使用相同的自动完成属性和关闭值关闭整个表单的自动填充。
我刚刚遇到了与Chrome 72相同的问题...它只是想填充任何类型的字段(选择或输入)只要它不是只读(完全不尊重名称,自动完成等属性),任何类型它之前可能存储的价值。
change
事件或者输入上有一些验证可能会因为自动填充错误而触发错误消息。您只需为浏览器提供另一个字段即可填充,并且通过将其隐藏在其他字段下,几乎无法看到它。
<input type="text" id="autofill-if-you-dare" style="position: absolute; z-index: -1; top: 20px; width: 0; height:0" />
注意:之后您仍然可以通过javascript隐藏或删除它,但在自动填充完成之前不应隐藏它,因为Chrome只会填充可见字段。正如其他答案所述,它不会触发任何事件,因此您必须依靠轮询才能这样做。
我最近遇到过这个问题,特别是使用chrome。看起来
autocomplete="off"
Chrome不再被提起。我发现以下来源很有帮助:
Chromium(我认为是很多Chrome所基于的)有以下代码,显示在查找填充Chrome自动完成的字段时使用的正则表达式:
我觉得他们只有其他工作,我发现是遵循这些惯例:https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
或者至少确保您提供的属性与上面的列表不同,因此它不会被自动完成功能提取。
我们最近在从Chrome浏览器查看购物车页面时遇到了类似这样的问题,并且您已为该网站保存了用户名和密码。 Chrome会将莫名其妙的用户名值放入数量框中。经过多次拉扯,我们意识到页面上有一个隐藏的用户名和密码字段。这些在可见时自动填充。当隐藏的chrome会自动填充数量输入框。通过在这些控件上设置autocomplete =“username”和autocomplete =“current-password”,问题就消失了。