Jquery keypress() 事件不捕获 Tab 键码

Lou*_*ran 3 javascript jquery

如果用户在文本框上打字时按 Tab,我想做一些事情。但是下面的代码无法处理选项卡按钮。我为“Enter”尝试了“13”并且它起作用了,但我不确定为什么它对 Tab 不起作用。

我认为这可能是因为按下选项卡时文本框失去焦点。如果是这种情况,当人们在此文本框中按 Tab 键时,如何防止失去焦点?

谢谢你。

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

Ror*_*san 5

文档

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

要解决此问题,请keydown改用:

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