Jquery 如何获取输入元素上的键选项卡事件?
我尝试在输入字段中按下返回键时触发一个按钮。这很有效。但如果我点击tab键,则不会触发任何内容,因为tab键事件未被捕获 以下是我的JQ代码片段,例如:Jquery 如何获取输入元素上的键选项卡事件?,jquery,keyup,keystroke,Jquery,Keyup,Keystroke,我尝试在输入字段中按下返回键时触发一个按钮。这很有效。但如果我点击tab键,则不会触发任何内容,因为tab键事件未被捕获 以下是我的JQ代码片段,例如: $("input[name=input]").on("keypress, keydown, keyup", function(e) { var code = e.keyCode || e.which; if ( code == 13 || code == 9 ) { $("input[name=btn]").trigger("
$("input[name=input]").on("keypress, keydown, keyup", function(e) {
var code = e.keyCode || e.which;
if ( code == 13 || code == 9 ) {
$("input[name=btn]").trigger("click");
}
});
我不知道如何使tab键笔划像返回键笔划一样工作。- 使用
防止浏览器在按Tab键时切换焦点李>Event.preventDefault()
- 仅侦听
事件“keydown”
- 改用
即使jQuery使用
jQueryEvent.which
对Event.keyCode
和Event.which
交叉浏览器进行规范化,我认为我们应该放弃这两个并使用更人性化的Event.key
。什么更有意义,9
或'Tab'
<代码>13或输入“
<代码>42或。。。42是多少
$('input[name=input]')。打开('keydown',函数(evt){
如果(evt.key=='Tab'| | evt.key==='Enter'){
evt.preventDefault();
$('input[name=btn]')。触发器('click');
}
});
keydown
事件返回false
和预防默认值
,这样焦点就不会丢失e.preventDefault()
和返回false
。为什么?“嗯,它也会停止传播返回false就足够了,但我喜欢它在那里,特别是在这种情况下(它用于提交按钮,而函数的其余部分必须停止)。preventDefault
只是为了代码清晰,谢谢。这个很好用。唯一的问题是,我必须将焦点更改功能应用于通过单击按钮触发的功能。如果我不这样做,用户将无法使用选项卡更改字段。如果您想了解有关prevent default
和return false
的更多信息:“返回false就足够了”您不理解return false。
$("input[name=input]").on("keydown", function(e) {
var code = e.keyCode || e.which;
if ( code == 13 || code == 9 ) {
e.preventDefault();
$("input[name=btn]").trigger("click");
return false;
}
});