是否有一个跨浏览器解决方案来禁用输入类型='text'上的'tab'?
<input type='text' />
按“标签”可移动到下一个“可聚焦”组件(例如按钮)
我想要'tab'做其他事情。 例如 即使在Google搜索标签中,也只是用于自动填充建议的文字,而不是将您转移到下一个可关注的组件...
感谢
答案 0 :(得分:12)
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
}。
答案 1 :(得分:3)
非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
}
}
答案 2 :(得分:1)
是,检查按下的键是否为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”操作的表单。