IOS禁用键盘标签箭头

IOS disable the keyboard tab arrows

本文关键字:标签 键盘 IOS      更新时间:2023-09-26

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

我尝试了几个选项,但是在选择菜单时遇到了问题。

我也不能将所有的tabindex都恢复为-1,因为这会损害桌面和其他设备上的tab功能。

如有任何帮助,不胜感激。

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

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

我实际上找到了一种方法来做到这一点,工作了很长时间。

我正在做的是检测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');
  }
});

这是一个不能通过设置html属性,元标签或监听特殊事件(没有这些箭头的事件…)来解决的问题。

唯一的选择是当一个输入被聚焦时禁用表单中的所有其他输入,这样就没有可以制表符的输入了。

与其写这段代码并重新发明轮子,这里有一个链接到一个jquery模块,它已经做到了:https://github.com/ChrisWren/touch-input-nav

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