Chrome 将字段识别为 "address" 以进行错误的自动填充

Chrome identifying field as "address" for autofill incorrectly

我有一个包含多个文本输入的网络表单,最近有一个专门开始以某种方式将其自动填充链接到 "City",而 Chrome 仅提供来自浏览器中存储地址的选项。

名称和类型甚至不符合我在网上看到的浏览器正则表达式规范中应该匹配的名称和类型,甚至玩我在其他论坛上发现的 "x-autocompletetype" 似乎也没有影响。

<label for="spec-Storage Capacity"> 6. Storage Capacity </label>

<input type="text" class="form-control" id="spec-Storage Capacity" name="spec-Storage Capacity" x-autocompletetype="Storage Capacity">

直到最近,它一直在存储我们在这里填写的内容(例如“16 GB”),但现在我们只是从浏览器中获取城市列表。

另请注意:我知道这不是名称中有空格,因为其他表单元素看起来就像这样并且可以正常工作。

"Capacity" 末尾的 "city" 似乎触发了自动填充。我猜正则表达式是激进的,所以它可以匹配 shipping-city.

这样的情况

如果有人在字段未正确自动填充时寻找通用答案,请使用自动填充属性指定要自动填充的正确值。此处看到的可接受值:https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete

示例:

<input type="text" name="firstName" autocomplete="given-name"/>
<input type="text" name="lastName" autocomplete="family-name"/>

在这种特殊情况下,可能没有确定的解决方案,因为名称“Capacity”可能会将该字段与城市字段混淆(因为 'city' 是 'capacity' 的子字符串) .如果您的表单有城市字段,请确保将 autocomplete="address-level2" 添加到您所在城市的输入标签,但如果您的用户居住在具有多个行政级别的地方,这可能会产生意想不到的后果。

如果您没有城市字段,请尝试像这样创建一个隐藏字段:

<input type="hidden" autocomplete="address-level2"/>

不确定这是否可行。另一种选择是:

<input type="text" autocomplete="address-level2" style="height: 0; opacity: 0; visibility: hidden;"/>