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

时间:2011-09-19 14:24:15

标签: jquery mobile-safari

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

4 个答案:

答案 0 :(得分:6)

到目前为止,针对我的最佳解决方案(基于 Jezen Thomas 解决方案)是将focus readonly设置为input和{{1} }和textareadisabled s,并在select上删除它们:

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更改为选择之前,您需要放弃焦点(例如点击背景),这只有一个缺陷。但您可以轻松地在textareainput之间更改焦点。

答案 1 :(得分:1)

我没有亲自对此进行过测试,但可能会尝试使用disabled代替readonly

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

Disabled - 禁用的输入元素无法使用且无法点击。

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

答案 2 :(得分:1)

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

 <script>
   var device = navigator.userAgent.toLowerCase();

   var ios = device.match(/OS 7(_\d)+ like Mac OS X/i);

  if (ios) {
     $(document).ready(function(){
       $('input, textarea, select').on('focus', function() {
       $('input, textarea').not(this).attr("readonly", "readonly");
       $('select').not(this).attr("disabled", "disabled");
       });

       $('input, textarea, select').on('blur', function() {
       $('input, textarea').removeAttr("readonly");
       $('select').removeAttr("disabled");
       });

     });

   }
  </script>

答案 3 :(得分:1)

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

我的工作解决方案:

path/to/deleted/file

此解决方案禁用iPhone中的上一个和下一个按钮。如果您想更改仅针对特定输入元素的选择器,您只需要在上面的代码中修改它。

我只定位iPhone(可能您可以使用不同的条件来测试它是否为iphone)。使用过&#39; touchstart&#39;因为它在“焦点”之前被触发了。在模糊时,我启用输入&amp;选择字段。

希望这个答案有所帮助。