最近我们开始收到一些抱怨,一个页面上的按钮停止在 ipad - ios8 下工作,做了一些测试我们在启用按钮并设置焦点时发现了代码( )如果我们将焦点放在另一个地方,按钮永远不会得到焦点,最糟糕的是它没有响应点击。
下面是一个模拟此问题的小提琴手,首先选择文本框以设置焦点,然后按下按钮P1并尝试按下Do Something按钮。
$("#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> </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;
有没有其他人遇到过这个错误?有解决方法吗?
最好的问候
答案 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