iOS如何禁用键盘的Tab箭头?

14
我需要使用JavaScript或基于Web的应用程序元标记来禁用IOS上的键盘tab箭头。我尝试了一些选项,但在选择菜单方面遇到了问题。另外,我也不能将所有的tabindex都还原为-1,因为这会损坏桌面和其他设备上的tab-ability。感谢任何帮助。下面是我为跳转到只读字段所做的示例代码:
$(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");
  });

});


你在移动版Safari上遇到了问题吗? - pedrouan
@pedrouan 是的,老兄。 - user4563161
2个回答

9

我找到了一种方法,可以有效地实现这个目的。

我的做法是检测仅限IOS设备,并禁用输入字段的选项卡。

我想我还可以更进一步,检测IOS和safari。

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


2
这是一个无法通过设置html属性、元标签或监听特定事件(这些箭头没有事件...)来解决的问题。
唯一的选择是,在输入聚焦时禁用表单中的所有其他输入,以便没有输入可切换到。
不要重复造轮子,这里提供了一个已经实现此功能的jquery模块链接:https://github.com/ChrisWren/touch-input-nav 如果你想要一个纯js解决方案,请查看:https://github.com/ChrisWren/touch-input-nav/blob/master/touch-input-nav.js,需要重写的代码不多,所以不应该是个问题。

这是为了防止在输入字段之外切换到其他表单。 - user4563161
@DCdaz,啊,我的错,很高兴看到你自己找到了解决方法:D 不幸的是,触摸键盘没有官方API :/ - seahorsepip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接