Html Chrome autocomplete认为“我的”;“名字”;field是一张信用卡

Html Chrome autocomplete认为“我的”;“名字”;field是一张信用卡,html,reactjs,google-chrome,credit-card,autosuggest,Html,Reactjs,Google Chrome,Credit Card,Autosuggest,这个问题在别的地方被问过,但没有得到回答。 谷歌浏览器认为我的输入 是一张信用卡,如autocomplete field inspector(实验性标志物)所示,由提供保存的信用卡的autocomplete显示 它在lastName字段和另一个数字类型字段中以另一种形式执行此操作 我不明白的是,它在我们的开发环境中就像预期的那样工作,并且只在登台时才会出问题(两者都是几乎相同的部署过程、相同的s3+cloudfront托管、相同构建的相同代码) 有什么线索吗 更奇怪的是:将name字段改为fi

这个问题在别的地方被问过,但没有得到回答。 谷歌浏览器认为我的输入

是一张信用卡,如autocomplete field inspector(实验性标志物)所示,由提供保存的信用卡的autocomplete显示

它在lastName字段和另一个数字类型字段中以另一种形式执行此操作

我不明白的是,它在我们的开发环境中就像预期的那样工作,并且只在登台时才会出问题(两者都是几乎相同的部署过程、相同的s3+cloudfront托管、相同构建的相同代码)

有什么线索吗


更奇怪的是:将
name
字段改为
first name
,而不是
firstName
可以解决这个问题。我不需要同时更改两个输入名称,只有第一个可以更改。但是我应该可以随意命名我的字段,不?

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

(更多信息请访问。)

例如,对于名字,您应该使用
autocomplete=“给定名称”
,对于姓氏,您应该使用
autocomplete=“family name”

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


至于为什么有些输入没有
autocomplete
属性,但仍然能够正确识别:当没有找到
autocomplete
属性时,浏览器会尝试“智能地”决定应该在该字段中输入什么

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


在您的情况下,浏览器似乎识别出了
name=“firstName”
,但在识别稍有不同的
name=“firstName”
时遇到了困难。但是,正如您所说,您应该能够为您的
名称
属性提供任何您想要的值,为此,您应该使用
自动完成
属性。

不知道浏览器为什么认为这是一张信用卡,但您可以使用
自动完成
属性告诉它这是一个名称。更多详细信息,请参见下面我的答案。Chrome在检测抄送号码字段时也会使用文本。检测是特定于语言的。我们有一个英语客户端显示了这个问题,但是将客户端操作系统语言更改为瑞典语解决了这个问题。请注意,该页面没有本地化支持,始终以瑞典语呈现。