Safari自动填充cc-exp无法正常工作

4
我正在尝试使Safari中的信用卡表单自动完成功能正常工作,但它似乎完全忽略了过期日期的自动完成。无论我使用cc-exp还是分开使用cc-exp-month/cc-exp-year,都无法正常工作。但是cc-name和cc-number的自动补全是正常工作的,并且在Chrome中也能够正常工作。
我已经将问题简化为一个非常简单的示例:

<form>
  <input type="text" autocomplete="cc-name" placeholder="name" />
  <input type="text" autocomplete="cc-number" placeholder="number" />
  <input type="text" autocomplete="cc-exp" placeholder="expiration" />
  <input type="text" autocomplete="cc-csc" placeholder="cvc" />
</form>

我在这里错过了什么?我已经尝试使用ID、名称和x-autocompletetype的旧语法,但都没有成功。在Safari 7到10上进行了测试,所以这个问题似乎已经存在一段时间了,或者我确实错过了一些显而易见的东西?
(注意:为了测试上面的示例,请确保您正在通过https访问此页面,否则它将无法正常工作)

同样的问题在这里。看起来像是Safari的bug。 - Shaun Lebron
你最终解决了这个问题吗? - Msencenb
不,我从来没有找到解决方案。这让我觉得我做错了什么,因为这是许多Safari浏览器中的一个问题。 - PaulT
1个回答

1
我正在寻找一个关于这个问题的解决方案,并注意到在一个较旧的表单上,即使我没有自动完成属性,它也可以正常工作。这些表单之间的区别在于,在较旧的表单上,我使用了两个下拉字段(SELECT标签)来选择以MM和YYYY格式表示的到期月份和年份。
经过尝试不同的选项后,我得出结论,Safari需要两个单独的字段,一个用于MM,另一个用于YYYY。现在我有两个文本字段,如下所示:
<input type="text" name="CCExpiryMonth" id="CCExpiryMonth" value="" placeholder="MM" autocomplete="cc-exp">
<input type="text" name="CCExpiryYear" id="CCExpiryYear" value="" placeholder="YYYY" autocomplete="cc-exp"> 

这在Safari中有效。


1
来自评论区:请编辑你的答案并修复它,而不是在下面发表多条评论。之后,请从答案中删除你的评论。参见:如何编写一个好的答案? - sɐunıɔןɐqɐp
使用 cc-exp-monthcc-exp-year 作为“自动完成”值怎么样? - Noitidart

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