Chrome 自动完成认为我的 "firstName" 字段是信用卡
Chrome autocomplete thinks my "firstName" field is a credit card
这个问题已经在其他地方被问过,但没有得到回答。
Google Chrome 认为我的输入
<input name="firstName" id="firstName" type="text" placeholder="John" font-size="16" class="sc-fznKkj XyZMK">
是一张信用卡,如自动完成字段检查器(实验性标志)和提供已保存信用卡的自动完成所示。
它也在 lastName 字段和另一个数字类型字段上以另一种形式执行此操作。
我不明白的是它在我们的开发环境中按预期工作,并且只在暂存阶段变得疯狂(两者几乎相同的部署过程,相同的 s3 + 云端托管,相同构建的相同代码).
有什么线索吗?
它变得更奇怪:将 name
字段更改为 first-name
而不是 firstName
修复了它。我不需要更改两个输入名称,只需更改第一个即可。但是我应该可以随心所欲地命名我的领域,不是吗?
在 HTML 表单中,autocomplete
属性用于告诉浏览器什么类型的数据应该进入特定的输入。
(更多信息在 MDN web docs。)
例如,对于名字,您应该使用 autocomplete="given-name"
,对于姓氏,则使用 autocomplete="family-name"
。
将这些属性添加到被错误识别的输入应该可以解决您的问题。
关于为什么某些输入没有 autocomplete
属性但仍能被正确识别:当没有找到 autocomplete
属性时,浏览器会尝试决定 'intelligently'放入该字段。
为此,最常用的是 name
属性。例如,如果是 username
或 password
,浏览器可能会识别这些词,因为它们是非常常见的输入描述。如果是myinput6
,那么浏览器将无法识别任何内容。
在您的情况下,浏览器似乎可以识别 name="first-name"
,但无法识别略有不同的 name="firstName"
。但是,正如您所说,您应该能够为 name
属性赋予任何您想要的值,为此,您应该使用 autocomplete
属性。
这个问题已经在其他地方被问过,但没有得到回答。 Google Chrome 认为我的输入
<input name="firstName" id="firstName" type="text" placeholder="John" font-size="16" class="sc-fznKkj XyZMK">
是一张信用卡,如自动完成字段检查器(实验性标志)和提供已保存信用卡的自动完成所示。
它也在 lastName 字段和另一个数字类型字段上以另一种形式执行此操作。
我不明白的是它在我们的开发环境中按预期工作,并且只在暂存阶段变得疯狂(两者几乎相同的部署过程,相同的 s3 + 云端托管,相同构建的相同代码).
有什么线索吗?
它变得更奇怪:将 name
字段更改为 first-name
而不是 firstName
修复了它。我不需要更改两个输入名称,只需更改第一个即可。但是我应该可以随心所欲地命名我的领域,不是吗?
在 HTML 表单中,autocomplete
属性用于告诉浏览器什么类型的数据应该进入特定的输入。
(更多信息在 MDN web docs。)
例如,对于名字,您应该使用 autocomplete="given-name"
,对于姓氏,则使用 autocomplete="family-name"
。
将这些属性添加到被错误识别的输入应该可以解决您的问题。
关于为什么某些输入没有 autocomplete
属性但仍能被正确识别:当没有找到 autocomplete
属性时,浏览器会尝试决定 'intelligently'放入该字段。
为此,最常用的是 name
属性。例如,如果是 username
或 password
,浏览器可能会识别这些词,因为它们是非常常见的输入描述。如果是myinput6
,那么浏览器将无法识别任何内容。
在您的情况下,浏览器似乎可以识别 name="first-name"
,但无法识别略有不同的 name="firstName"
。但是,正如您所说,您应该能够为 name
属性赋予任何您想要的值,为此,您应该使用 autocomplete
属性。