IOS禁用键​​盘选项卡箭头

时间:2016-09-23 17:38:34

标签: javascript jquery mobile-safari

我需要使用JavaScript甚至是基于网络的应用元标记(如果有的话)禁用IOS上的键盘选项卡箭头。

我尝试了一些选项但在选择菜单时遇到了问题。

我也无法将所有tabindex恢复为-1,因为这会损坏桌面和其他设备上的标签功能。

任何帮助都将不胜感激。

这是我为跳转到readonly的字段所做的一个例子。

$(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");
  });

});

2 个答案:

答案 0 :(得分:7)

我实际上找到了一种方法来完成这项工作。

我正在做的是检测仅限IOS的设备,然后禁用选项卡输入字段。

我想我可以更进一步检测IOS和野生动物园。

$(document).ready(function() {
  // Detect IOS
  if (navigator.userAgent.match(/(iPod|iPhone|iPad)/)) {

    // Only active input fields in use
    $('input, textarea').on('focus', function() {
      $('input, textarea').not(this).attr("readonly", "readonly");
    });
    $('input, textarea').on('blur', function() {
      $('input, textarea').removeAttr("readonly");
    });

    // Disable tabing to select box's
    $('select').attr('tabindex', '-1');
  }
});

答案 1 :(得分:2)

这是一个无法通过设置html属性,元标记或侦听特殊事件来解决的问题(这些箭头没有事件......)。

唯一的选择是在输入被聚焦时禁用表单中的所有其他输入,这样就没有选项卡的输入。

不是编写此代码并重新发明轮子,而是指向已经执行此操作的jquery模块的链接:https://github.com/ChrisWren/touch-input-nav

如果您需要纯粹的js解决方案,请查看:https://github.com/ChrisWren/touch-input-nav/blob/master/touch-input-nav.js 没有那么多代码需要重写,所以这不应该是一个问题。