Chrome 自动填充功能认为我的"firstName"字段是信用卡



谷歌浏览器认为我的输入

<input
name="firstName"
id="firstName" type="text"
placeholder="John" font-size="16"
class="sc-fznKkj XyZMK"
>

是信用卡,如自动完成字段检查器所示,并且提供了已保存的信用卡。它也在lastName字段上执行此操作,并在另一种形式的某个位置执行另一个数字类型字段。

我不明白的是,它在我们的开发环境中按预期工作,并且仅在暂存中出错(两者都是几乎相同的部署过程,相同的 s3 + cloudfront 托管,相同构建的相同代码(。

有什么线索吗?

它变得更奇怪:将name字段更改为first-name而不是firstName修复它。我不需要更改两个输入名称,只需更改第一个即可。但是我肯定应该可以随心所欲地命名我的领域吗?

在 HTML 表单中,autocomplete属性用于告诉浏览器应该将哪种类型的数据放入特定输入。

(更多信息在MDN web docs。

例如,对于名字,应使用autocomplete="given-name",对于姓氏,应使用autocomplete="family-name"

将这些属性添加到错误识别的输入中应该可以解决您的问题。


至于为什么某些输入没有autocomplete属性仍然被正确识别:当找不到autocomplete属性时,浏览器会尝试"智能地"决定应该放入该字段的内容。

为此,最常用的是name属性。例如,如果它是usernamepassword,浏览器可能会识别这些单词,因为它们是非常常见的输入描述。如果myinput6,则浏览器将无法识别任何内容。

在您的情况下,浏览器似乎识别name="first-name",但无法识别略有不同的name="firstName"。但是,正如您所说,您应该能够为您的name属性提供您想要的任何值,为此,您应该使用autocomplete属性。

最新更新