Forms 自动填充填充错误字段

Forms 自动填充填充错误字段,forms,autofill,Forms,Autofill,我有一个带有结账页面的网站,它一直运行得很好。 最近,任何使用autofill填写信息的客户都会将其电子邮件地址转储到公司字段中。 我们所做的任何改变都不会影响这一点。 我还可以使用哪些其他工具来弄清这个问题?我遇到了类似的问题,在“名称”字段下放置了一个“公司”字段。那家公司的字段自动填入了出生年份。 它来自同一站点上的另一个表单,该表单在“name”字段下方显示“birthdate”字段组。所以chrome按照这个顺序存储了它的自动填充值。 我最终改变了我的第二个表单字段顺序(遗憾的是,这是

我有一个带有结账页面的网站,它一直运行得很好。
最近,任何使用autofill填写信息的客户都会将其电子邮件地址转储到公司字段中。 我们所做的任何改变都不会影响这一点。
我还可以使用哪些其他工具来弄清这个问题?

我遇到了类似的问题,在“名称”字段下放置了一个“公司”字段。那家公司的字段自动填入了出生年份。 它来自同一站点上的另一个表单,该表单在“name”字段下方显示“birthdate”字段组。所以chrome按照这个顺序存储了它的自动填充值。
我最终改变了我的第二个表单字段顺序(遗憾的是,这是我所能做的最好的了)。

我们仍然不知道是什么导致了这个问题,但对于任何看到这个问题的人来说,我们最终将字段设置为只读,这样自动填充就不会填充它。然后我们编写了一些JS,在focus上,它变为活动状态,用户可以手动填写


您需要将名称添加到输入标记中。浏览器使用名称来标识应该进入字段的信息。如果愿意,也可以将相同的ID和占位符用作ID和占位符。 试试这个:

<input type="text" name="company" id="company" placeholder="company">

如果仍然不起作用,您可能会考虑<强>关闭该特定字段的自动填充*:

<input type="text" name="company" id="company" placeholder="company" autocomplete="off">


*您还可以使用相同的“自动完成”属性和“关闭”值来关闭整个表单的“自动填充”。

发现自己也遇到了类似的问题,在这种情况下使用“自动完成”属性

<input type="text" name="fooBar" autocomplete="organization" > 


我最近遇到了这个问题,特别是在chrome上。看来

autocomplete="off"
不再被Chrome拾取。我发现以下来源很有帮助:

Chrome(我相信很多Chrome都是基于Chrome的)有以下代码,显示了在查找字段以填充Chrome的autocomplete时使用的正则表达式:

我觉得他们唯一的解决办法就是遵循这些惯例:

或者至少确保您提供的属性与上述列表中的属性足够相似,这样它就不会被自动完成功能拾取。

几乎看不见的输入代理技巧 我刚刚在Chrome 72上遇到了同样的问题。。。它只想用以前存储的任何类型的值填充任何类型的字段(选择或输入),只要它不是只读的(完全不考虑名称、自动完成等属性)

  • 您可能希望避免填充字段,因为您侦听了
    更改
    事件,或者对输入进行了一些验证,这些验证可能仅仅因为错误的自动填充而触发错误消息
  • 您只希望自动填充值被丢弃,甚至不显示(甚至在javascript执行之前)
您只需为浏览器提供另一个要填充的字段,然后将其隐藏在另一个字段下,几乎无法看到

    <input type="text" id="autofill-if-you-dare" style="position: absolute; z-index: -1; top: 20px; width: 0; height:0" />



注意:以后仍然可以通过javascript隐藏或删除它,但不应在自动填充完成之前隐藏它,因为Chrome将只填充可见字段。正如其他答案所述,它不会触发任何事件,因此您必须依靠投票来实现这一点。

OP的问题可能已经解决(或者可能在最近的更新中再次出现!),但从2019年初开始,您可以通过在
chrome://flags
,重新启动Chrome,然后查看相关输入的标题(工具提示文本)。它将告诉您使用什么信息来猜测字段的“类型”,以及应该使用什么类型的保存数据来填充字段。

最近,当从chrome上查看购物车页面时,我们的购物车页面出现了类似的问题,您保存了该站点的用户名和密码。Chrome会莫名其妙地将用户名值放入数量框。经过一番努力,我们发现页面上有一个隐藏的用户名和密码字段。可见时,这些字段将自动正确填充。当隐藏的chrome将自动填充数量输入框时。通过在这些控件上设置autocomplete=“username”和autocomplete=“current password”,问题就消失了。

我遇到了一个问题,chrome会在我的表单中的所有字段中填写我的电子邮件。另一个表单工作正常。 我发现问题是输入的名称之前必须有单词名称。或者在输入电子邮件之前必须输入单词email。后来我就有了。在电子邮件输入生效后,也要使用
您的电子邮件

**Incorrect autocomplete:**
<input type="text" name="name"/> Your name
<input type="email" name="email"/> Your email

**Correct autocomplete:**
Your name <input type="text" name="name"/>
Your email <input type="email" name="email"/>
or
<label for="name">Your name</label> <input type="text" name="name"/>
<label for="email">Your email</label> <input type="email" name="email"/>
or
<input type="text" name="name"/> <label for="name">Your name</label>
<input type="email" name="email"/> <label for="email">Your email</label>
**不正确的自动完成:**
你的名字
你的电子邮件
**正确的自动完成:**
你的名字
你的电子邮件
或
你的名字
你的电子邮件
或
你的名字
你的电子邮件

假设有三个字段,其中一个字段的自动完成错误

<input type="text" name="field1"/> 
<input type="password" name="field2"/> 
<input type="text" name="wrongAutocompleteField3"/> 

现在将错误的AutoCompleteField3显示为无:

<style>
.d-none{
   display:none;
}
</style>
....
<input type="text" name="wrongAutocompleteField3" class="d-none"/> 

d-无{
显示:无;
}
....
在页面加载时删除此.d-none类:

<script>
$(function(){
   $('[name="wrongAutocompleteField3"]').removeClass('d-none');
});
</script>

$(函数(){
$('[name=“ErrorAutoCompleteField3”]')。removeClass('d-none');
});

我解决了这个问题,确保我添加的部分实际上被包装在一个
标记中。该网站的全局“搜索”字段被视为页面表单的一部分,因为两者都没有
标签


由于您可以在表单之外输入内容,而这对于单页应用程序来说并不是什么大问题(虽然可能不是最佳实践!),因此这可能是值得检查的一件事。

2021年2月
autocomplete=“\uu away”
为我工作。
autocomplete=“新密码”
也起作用

虽然仍然很黑,但它在Chrome和MS Edge 88.0.7中对我都有效

相关(重复?)问题:



一定是发生了一些变化,使浏览器认为您的同事