Chrome自动完成认为我的 "firstName "字段是信用卡。

问题描述 投票:0回答:1

这个问题已经在别的地方问过了,但是没有得到回答。

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

是一张信用卡,正如自动完成字段检查器中所显示的那样(实验性的标志),并且通过自动完成提供了保存的信用卡。

它也在lastName字段和另一个表单中的某个数字类型字段上显示了这一点。

我不明白的是,它只是工作在我们的开发环境中的预期,并得到坚果只有在暂存(两者都是几乎相同的部署过程,相同的s3 +云前托管,相同的代码相同的构建)。

有什么线索吗?

更奇怪的是:改变 name 场到 first-name 而不是 firstName 修复了。我不需要修改两个输入名,只需要修改第一个输入名就可以了。但是我应该可以按照自己的意愿来命名我的字段,不是吗?

html reactjs google-chrome credit-card autosuggest
1个回答
0
投票

在HTML表格中, autocomplete 属性用于告诉浏览器应该将什么类型的数据输入到特定的输入中。

(更多信息在 MDN网站文档.)

例如,对于名字,你应该使用 autocomplete="given-name"而对于姓,则使用 autocomplete="family-name".

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


至于为什么一些输入没有一个 autocomplete 属性,但仍能正确识别:当没有使用 autocomplete 属性,浏览器就会尝试 "智能 "地决定该字段应该放入什么。

为了做到这一点,浏览器的 name 属性是最常用的。如果它是 usernamepassword 例如,浏览器可能会识别这些词,因为它们是非常常见的输入描述。如果是 myinput6那么浏览器将无法识别任何东西。

在你的情况下,浏览器似乎识别了你的网站。name 'first-name',但对略有不同的'firstName'却难以识别。然而,正如你所说,你应该能够给你的 name 属性的任何值,要做到这一点,你应该使用 autocomplete 属性。

© www.soinside.com 2019 - 2024. All rights reserved.