我有一个网站,拥有一个一直运作得很好的结账页面。
最近,使用自动填充功能填写信息的任何客户,他的电子邮件地址都会被放入公司栏位。
我们没有进行任何可能影响到此问题的更改。
还可以使用哪些工具来找到这个问题的根源?
楼主的问题可能已经解决了(或者在最近的更新中可能会再次出现!),但是截至2019年初,您可以通过在chrome://flags
中设置show-autofill-type-predictions
标志,然后重新启动Chrome并查看问题输入字段的标题(工具提示文本)来诊断其中一些问题。它将告诉您用于猜测字段“类型”的信息以及应该用于填充它的保存数据的类型。
我们仍然不知道是什么原因导致了这个问题,但对于任何看到这个问题的人,我们最终将该字段设置为readonly
,以便自动填充不会填写它。然后,我们编写了一些JS代码,在焦点聚焦时,它变为活动状态,用户可以手动填写。
<input type="text" name="company" readonly="" onfocus="this.removeAttribute('readonly');">
我遇到了类似的问题,而autocomplete属性就是在这种情况下要使用的。
<input type="text" name="fooBar" autocomplete="organization" >
name
和 id
属性都是 "company",但某些客户的自动填充却是他们的出生年份。我们花了一段时间才意识到发生了什么。 - Brian Leishman我遇到了一个类似的问题,即在“姓名”字段下放置了一个“公司”字段。该公司字段自动填充了出生年份。 它来自同一网站上显示在“姓名”字段下方的“出生日期”字段组的另一个表单。因此,Chrome按照这个顺序存储它的自动填充值。 最终,我只能改变第二个表单字段的顺序(可惜这是我所能做的最好的)。
autocomplete
属性,以强制Chrome正确地自动填充,如@catalint所述。请参见https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-autocomplete-name%20exhaustive%20list%20of%20autocomplete/autofill%20tags%20for%20html%20form%20inputs。 - Jeff Wilkerson您需要在输入标签中添加名称。浏览器使用名称来识别应该放入字段的信息。您也可以使用相同的名称作为ID和占位符。 请尝试以下内容:
<input type="text" name="company" id="company" placeholder="company">
<input type="text" name="company" id="company" placeholder="company" autocomplete="off">
你也可以使用相同的自动完成属性和 off 值来关闭整个表单的自动填充功能。
autocomplete="off"
won't work in the modern browsers since now they override this behavior. try setting some misc text with autocomplete attribute like autocomplete="nahnah"
- ThilankaD<form>
标签中来解决了这个问题。由于页面和全局“搜索”字段都没有<form>
标签,因此全局“搜索”字段被认为是页面表单的一部分。我也遇到了Chrome 72的同样问题...只要它不是只读的(完全不考虑名称、自动完成等属性),就会填充任何类型的字段(选择或输入)并使用其之前存储的任何类型的值。
更改
事件或输入验证可能会触发错误消息,仅因为自动填充不良。您只需提供另一个字段供浏览器填充,并将其隐藏在其他字段下面,使其几乎无法看到。
<input type="text" id="autofill-if-you-dare" style="position: absolute; z-index: -1; top: 20px; width: 0; height:0" />
注意:您仍然可以在之后使用JavaScript隐藏或删除它,但是在自动填充完成之前不应该隐藏它,因为Chrome只会填充可见字段。正如其他答案所述,它不会触发任何事件,因此您必须依靠轮询来完成。
最初的回答:您可以在JavaScript之后仍然隐藏或删除它,但是在自动填充完成之前不应该隐藏它,因为Chrome只会填充可见字段。并且,正如其他答案所述,它不会触发任何事件,因此您必须依靠轮询来完成。
<input id="" class="" name="" type="password" style="display: none;">
2021年2月:
autocomplete="__away"
对我有效 src。
autocomplete="new-password"
也有效 src。
仍然有点hacky,但在Chrome和MS Edge 88.0.7中都对我有效。
相关(重复?)问题:
Autocomplete Off is completely Ignored
Disabling Chrome Autofill
Autocomplete off vs false?
label
和name
属性来确定是否自动填充它们。 - Cato Minor