Jquery在焦点输入时防止快捷方式

时间:2013-06-28 16:36:09

标签: jquery input keyboard-shortcuts

我在我的网络应用程序中添加了快捷方式,但是当输入为焦点时,我想阻止它们...

$(function () {
    $(document).keypress(function (event) {
        var ch = String.fromCharCode(event.keyCode || event.charCode);
        switch (ch) {
            case 'p': case 'P':
                mainMenuRegulations();
                break;
            case 's': case 'S':
                mainMenuJurisprudence();
                break;
            case 'm': case 'M':
                mainMenuModels()
                break;
            case 'i': case 'I':
                showImprintContact();
                break;
}
});

});

1 个答案:

答案 0 :(得分:2)

只需检查当前活动元素(聚焦元素)是否是keypress事件处理程序中的输入:

$(function () {
    $(document).on('keypress', function(event) {

        if (document.activeElement.tagName.toLowerCase() == 'input' ) {

            var ch = String.fromCharCode(event.which);

            switch (ch) {
                // your code here
            }
        }
    });
});

更具体地说,您也可以检查document.activeElement类型,并检查文字,数字或其他任何您正在使用的内容?