在Mobile Safari中禁用“上一个”和“下一个”按钮

当专注于输入字段时,是否可以禁用Mobile Safari中的“下一个”和“上一个”按钮? 我一直在尝试将所有字段设置为readonly="readonly"并分别删除/重新应用焦点/模糊属性的方法。 它适用于某些领域,但并非适用于所有领域。 在某些情况下,它感觉相当hacky / buggy。 我可以普遍禁用上一个和下一个控件吗? 这适用于iPad网络应用程序,因此可访问性不是问题。

到目前为止,对我来说最好的解决方案(基于Jezen Thomas解决方案)是将readonly设置为input s和textarea s并disabledselect s,并在blur删除它们:

 jQuery('input, textarea, select').on('focus', function() { jQuery('input, textarea').not(this).attr("readonly", "readonly"); jQuery('select').not(this).attr("disabled", "disabled"); }); jQuery('input, textarea, select').on('blur', function() { jQuery('input, textarea').removeAttr("readonly"); jQuery('select').removeAttr("disabled"); }); 

在从input / textarea更改为选择之前,只需要丢弃一个缺点(例如,单击背景)。 但是你可以轻松地改变input s和textarea之间的焦点。

我没有亲自测试过这个,但也许尝试disabled而不是readonly

只读 – 无法修改只读字段。 但是,用户可以选中它,突出显示它,然后从中复制文本。

已禁用 – 已禁用的输入元素无法使用且无法单击。

也许这就是你需要的差异?

这是与IOS检测相同的脚本。

   

我可以看到这张票是旧的,但上面提出的答案对我不起作用,因为iPhone在调用焦点事件之前打开了选择选项列表。 所以我使用了下面的代码,它对我来说就像魅力一样。

我的工作解决方案:

 if (navigator.userAgent.toLowerCase().indexOf("iphone") ==-1) { }else{ $(document).on('touchstart', 'input, select', function() { $('select, input').not(this).attr('disabled', 'disabled'); }).on('blur', 'input, select', function() { $('input, select').removeAttr('disabled'); }); } 

此解决方案禁用iPhone中的prev和next按钮。 如果要更改仅针对特定输入元素的选择器,只需在上面的代码中对其进行修改即可。

我只针对iPhone(可能你可以使用不同的条件来测试它是否是iphone)。 使用’touchstart’,因为它在’焦点’之前被触发。 在模糊时,我正在启用输入和选择字段。

希望这个答案有所帮助