IOS 7 Safari(以及 OSX 10.9)信用卡提示“not now”导致问题

Posted

技术标签:

【中文标题】IOS 7 Safari(以及 OSX 10.9)信用卡提示“not now”导致问题【英文标题】:IOS 7 Safari (as well as OSX 10.9) Credit Card prompt "not now" causing issues 【发布时间】:2014-02-14 01:14:09 【问题描述】:

当用户选择“Not Now”到iCloud Keychain信用卡提示(ios 7 Safari)时,表单提交出现问题。

在 IOS 7 Safari 上,表单不会提交。

重新加载表单可以解决问题,但这不是必需的。

【问题讨论】:

找到解决方案了吗?字段中的 autocomplete="off" 应禁用此功能 autocomplete="off" 不起作用; IOS 7 Safari 设法要求无论如何都要记住。 【参考方案1】:

我发现这个问题是由包含 type="password" 输入的表单引起的。一旦我删除该输入,或将其更改为“文本”,用户点击“不是现在”后,表单就会正常提交。

【讨论】:

【参考方案2】:

我们遇到了这个确切的问题。正如 Guy Thomas 所提到的,这是因为表单中有密码字段和 CC 字段。

经过大量测试,我确定密码字段可以在提交表单之前切换到不同的type(在我们的例子中,只是切换到hidden)。即使在对话框中选择“Not Now”后,这也允许表单提交。

$("#submit").on("click", function()
    try
        $("input[type=password]").attr("type", "hidden");
     catch(ex)
        try 
            $("input[type=password]").prop("type", "hidden");
         catch(ex) 
              
);

我添加了 try/catch,因为根据浏览器/jquery 版本,更改 type 属性会出错。

【讨论】:

以上是关于IOS 7 Safari(以及 OSX 10.9)信用卡提示“not now”导致问题的主要内容,如果未能解决你的问题,请参考以下文章

OSX 10.9 - Mavericks webdav 客户端锁定问题

跨域资源共享的问题:预检请求后 OSX Safari 和 iOS Safari 均失败

OSX 10.9 Mavericks 钥匙串 API 坏了?

如何在 OS X 10.9 中卸载多个 Xcode 实例

是否可以在 OS X 10.9 中添加对 iOS 5.1 模拟器的支持?

在 OSx 10.9 Mavericks 上安装 Cantera 2.1