是否有跨浏览器解决方案来禁用输入 type='text' 上的 'tab' ?
<input type='text' />
按“选项卡”将您移动到下一个“可聚焦”组件(例如按钮)
我想改为“标签”做其他事情。例如,即使在谷歌搜索选项卡中,也只是用于自动完成建议的文本,而不是将您移动到下一个可聚焦的组件......
谢谢
是否有跨浏览器解决方案来禁用输入 type='text' 上的 'tab' ?
<input type='text' />
按“选项卡”将您移动到下一个“可聚焦”组件(例如按钮)
我想改为“标签”做其他事情。例如,即使在谷歌搜索选项卡中,也只是用于自动完成建议的文本,而不是将您移动到下一个可聚焦的组件......
谢谢
document.querySelector('input').addEventListener('keydown', function (e) {
if (e.which == 9) {
e.preventDefault();
}
});
取决于你所说的跨浏览器,因为上面只支持 IE9(和其他现代浏览器)。
http://jsfiddle.net/ExplosionPIlls/YVUzz/
IE8-用attachEvent
代替addEventListener
和e.keyCode
代替e.which
,也没有preventDefault
,但可以用return false
。
非 jQuery 实现会有点像这样 -
HTML 将是
<input type="text" id="myField1" onkeydown="return stopTab(event);" />
和JS如下
function stopTab( e ) {
var evt = e || window.event
if ( evt.keyCode === 9 ) {
return false
}
}
是的,检查按下的键是否是 tab,如果是,则返回 false:
<form class='noTab'>
<input type="text" />
<input type="text" />
<select>
<option>a</option>
<option>b</option>
</select>
<textarea>
</textarea>
</form>
jQuery('.noTab').find('input,select,textarea').keydown(function (e) {
if (e.which === 9) {
return false;
}
});
jQuery 将允许在旧版浏览器上进行这项工作。
在那个小提琴上,它显示了 2 个表单,一个带有“noTab”类,一个没有,因为 tab/shift+tab 对许多表单很有用,但不是一个具有特殊“tab”操作的表单。