如何取消键盘上特定键的keydown,例如HTML页面中的(空格,Enter和arrows)。

最佳答案

如果您仅对提到的示例键感兴趣,则keydown事件将起作用,但需要取消keypress事件的Opera的较早的,预眨眼的Opera版本(至少包括12版)除外。 。在keydown事件中可靠地标识不可打印的键要比keypress事件容易得多,因此以下内容在keydown处理程序中使用一个变量来设置,以告知keypress处理程序是否取消默认行为。

var cancelKeypress = false;

document.onkeydown = function(evt) {
    evt = evt || window.event;
    cancelKeypress = /^(13|32|37|38|39|40)$/.test("" + evt.keyCode);
    if (cancelKeypress) {
        return false;
    }
};

/* For Opera */
document.onkeypress = function(evt) {
    if (cancelKeypress) {
        return false;
    }
};

关于javascript - 取消HTML中的keydown,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3036243/

10-12 16:25