为什么在按 Tab 键后不阻止默认()停止焦点更改?

5 javascript jquery keypress preventdefault

我在摆弄, preventDefault()一定是做错了什么。

$("#input").bind("keypress", function(event) {
    if(event.which == 9) {
    event.preventDefault();
    alert("You pressed tab.");
    }
});
Run Code Online (Sandbox Code Playgroud)

选项卡功能不会被阻止。这有什么问题?

use*_*740 1

当按下 Tab 时,该keypress事件根本不会触发- 这也解释了为什么没有警报,与阻止默认值可能执行的操作无关。

更改要使用的代码keydown可以捕获 Tab 并防止默认的焦点更改(无论如何在 Chrome 1中)。

$("#input").bind("keydown", function(event) {
    if(event.which == 9) {
        event.preventDefault();
    }
});
Run Code Online (Sandbox Code Playgroud)

1我在 Chrome 35 中使用 jQuery 1.6-2.1测试了上述内容;它在 KO 3.0 库下不起作用