iOS 8 Jquery提交按钮焦点错误

时间:2015-01-30 10:23:51

标签: jquery ipad ios8

最近我们开始收到一些抱怨,一个页面上的按钮停止在 ipad - ios8 下工作,做了一些测试我们在启用按钮并设置焦点时发现了代码( )如果我们将焦点放在另一个地方,按钮永远不会得到焦点,最糟糕的是它没有响应点击。

下面是一个模拟此问题的小提琴手,首先选择文本框以设置焦点,然后按下按钮P1并尝试按下Do Something按钮。

Fiddler Here



$("#some_submit_button").prop("disabled",true);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<input type="button" id="P1" value="P1" onclick="P1Click()" />

<input type="text" id="textP"  />
    
<p>&nbsp;</p>
<input type="submit" id="some_submit_button" value="Do Something" onclick="Submit()" />

<script>
function P1Click() {
    $("#P1").prop("disabled",true);
    $("#some_submit_button").prop("disabled",false);
    $("#some_submit_button").focus();
}
function Submit(){
    alert('Submited the form');
}   
 </script>
&#13;
&#13;
&#13;

有没有其他人遇到过这个错误?有解决方法吗?

最好的问候

2 个答案:

答案 0 :(得分:0)

同样的问题here

解决方法:
不要把注意力集中在iPad,iPod,iPhone上(大多数人不会在这些设备上使用硬件键盘进行导航)。

if((!navigator.userAgent.match(/iPhone/i)) && (!navigator.userAgent.match(/iPod/i)) && (!navigator.userAgent.match(/iPad/i))) {
    $("#some_submit_button").focus();
} else {
    // hide keyboard on mobile
    $("#textP").blur();
}

答案 1 :(得分:0)

今天遇到了同样的问题。在显示一个对话框时,我将焦点放在键盘可访问性对话框内的第一个可聚焦元素上。在这种情况下,第一项是<input type="submit">按钮,iOS上的Safari阻止用户点击按钮。

我设法使用<button type="submit">代替<input type="submit">来解决这个问题。

就个人而言,我更喜欢浏览器嗅探。此外,它还保留了我的键盘辅助功能。

可以在此处测试问题: http://codepen.io/dapenguin/full/rOoaqv