防止Chrome自动填充信用卡信息

14

我的结账表单中有一个<input type="text" name="quantity" />,但是 Chrome 认为这个字段是信用卡过期月份。

一旦用户开始在另一个字段中输入姓名,Chrome 就会提供自动填充 CC 信息的选项,但是当用户点击时,Chrome 会将我的数量-<input> 填充为过期日期。

我尝试了每种可能的解决方法,包括:

  • autocomplete="off"(在 Chrome 中完全无效)
  • 设置 autocomplete="new-password" (不适用于 CC 自动填充)

PS. 如果你考虑将这个问题标记为“重复”,请注意我特别谈论的是信用卡自动填充,而不是你通常的自动填充。


可能是通过HTML或JavaScript禁用Web表单上的自动填充?的重复问题。 - jeremykenedy
5
就像我在问题中指出的那样,它不是通常意义上的自动完成,而是“已保存信用卡”自动完成。 - jazzcat
能否提供一个更完整的代码示例呢 :) - jeremykenedy
3
你是否找到了解决方法?我遇到了完全相同的问题。对于其他人来说,自动完成(autocomplete)=“off”无效。 - Anders Bergquist
有关此事有任何更新吗?我也在尝试修复它,但对我来说没有用!:( - jayM
@jazzcat,我也遇到了同样的问题。使用autocomplete="anything"并没有起作用。你解决了吗?怎么解决的? - Damián Pablo González
4个回答

1

4
太有趣了。 - Feathercrown

0

我找到的唯一可与 chrome 89.0.4xxxx 兼容的解决方案是:

<input style="display: none;" autocomplete="cc-csc"/>

这个解决方案的工作原理是什么: 基本上,我们为Chromium浏览器提供了一个特定的自动完成键(cc-csc),而不是更通用的名称或其他次要查找数据的自动完成键(number)。

您可以在此处找到有关此主题的详细信息。

在这里,您可以找到一个已修复的示例,请注释掉包含修复的行以进行比较: https://jsfiddle.net/bogdanm/sj0ewfqv/7/


0
将此代码添加到表单中似乎对我有效。
<input style="display: none;" autocomplete="cc-exp-month"/>
<input style="display: none;" autocomplete="cc-exp-year"/>

这些字段没有任何作用,但会引起浏览器的不必要注意。


-2

我知道这个问题已经有答案了,但是我还是想发表一下我的看法。

另一种方法(据我所知)是,在HTML文档中制作<input>字段时,只需不添加type="ipsum dolor amet"参数。然后Chrome或任何其他浏览器都不会知道什么是什么,也不会干涉它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接