Jquery的keypress()事件无法捕捉Tab键的按键码

3

当用户在文本框中输入时,如果按下TAB键,我想要做某些事情。但是下面的代码无法处理Tab键。我尝试了“13”表示“Enter”,它可以工作,但我不确定为什么它不能处理Tab键。

我认为这可能是因为当按下Tab键时,文本框失去了焦点。如果是这样,如何防止在此文本框中按下Tab键时失去焦点?

谢谢。

$("#tagInpKey").keypress(function (e) {
    if (e.which == 9) {
       alert("Tab Pressed");
    }
});

请使用 keydown 事件替代。 - Mohammad
@Mohammad 有没有办法可以防止失去焦点? - Louis Tran
@RoryMcCrossan发布的答案没有失去重点,应该能解决你的问题。 - G0dsquad
1个回答

5

根据文档

当浏览器注册键盘输入时,会向元素发送keypress事件。这类似于keydown事件,但是修饰键和非打印键(例如Shift、Esc和delete)会触发keydown事件而不是keypress事件

要解决此问题,请改用keydown

$("#tagInpKey").keydown(function (e) {
    if (e.which == 9) {
       alert("Tab Pressed");
    }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接