JavaScript:避免使用硬编码的密钥代码

时间:2013-01-11 11:12:44

标签: javascript keycode

  

可能重复:
  JavaScript event.keyCode constants

这是我的代码:

$button.on('keyup', function (event) {
    // Detect an Enter keypress
    if(event.keyCode === 13) {
        doStuff();
    }
});

如您所见,密钥代码13是硬编码的。是否有(跨浏览器)方式以更具语义意义的方式消除该数字?

2 个答案:

答案 0 :(得分:9)

如果您使用 jQueryUI ,则可以使用$.ui.keyCode常量:

keyCode: {
    BACKSPACE: 8,
    COMMA: 188,
    DELETE: 46,
    DOWN: 40,
    END: 35,
    ENTER: 13,
    ESCAPE: 27,
    HOME: 36,
    LEFT: 37,
    NUMPAD_ADD: 107,
    NUMPAD_DECIMAL: 110,
    NUMPAD_DIVIDE: 111,
    NUMPAD_ENTER: 108,
    NUMPAD_MULTIPLY: 106,
    NUMPAD_SUBTRACT: 109,
    PAGE_DOWN: 34,
    PAGE_UP: 33,
    PERIOD: 190,
    RIGHT: 39,
    SPACE: 32,
    TAB: 9,
    UP: 38
}

所以为了检查 Enter 按下使用:

if (event.keyCode === $.ui.keyCode.ENTER) { ... }

答案 1 :(得分:1)

重复Alex K.的答案(我用过):

"\r".charCodeAt(0)