2016-09-23 110 views
13

我需要禁用IOS上的键盘选项卡箭头,使用JavaScript或甚至基于Web的应用程序元标记(如果有的话)。IOS禁用键​​盘选项卡箭头

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

我也无法将所有tabindex恢复为-1,因为这会损害桌面设备和其他设备的选项卡能力。

任何帮助,将不胜感激。

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

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

 
});

+0

你有麻烦与此在移动Safari浏览器? – pedrouan

+0

@pedrouan是伴侣。 – DCdaz

回答

7

我实际上找到了一种方法来做到这一点,而且很有效。

我在做什么是检测仅IOS设备,然后禁用输入字段的Tab键。

我想我可以更进一步,检测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'); 
 
    } 
 
});

1

这是无法通过设置HTML属性,meta标签或听特殊事件需要解决的问题(还有那些箭头没有事件......)。

唯一的选择是当输入被聚焦时禁用表单中的所有其他输入,以便没有输入选项卡。

而不是写这个代码,并重新发明轮子的,这里有到已经这样做了一个jQuery模块的链接:https://github.com/ChrisWren/touch-input-nav

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

+0

即停止对其他表单未输入字段进行制表。 – DCdaz

+0

@DCdaz,啊我的坏,很高兴看到你设法找到一个解决方法yoursel:D可悲的是没有触摸键盘的官方API:/ – seahorsepip

+0

感谢队友,感谢发布。 – DCdaz