document keydown bind不适用于输入字段

时间:2014-10-09 07:36:35

标签: javascript jquery jquery-hotkeys

我一直在使用jeresig's hotkey的jquery热键插件。当文档处于焦点时,快捷方式可以正常工作,但是当焦点位于输入字段中时,快捷方式不起作用。我使用$(document)$(document).find('input')进行绑定。但这些都不起作用。

我使用以下代码制作快捷方式:

$(document).ready(function(){
        shortcutsInit(); 
});

function shortcutsInit(){
    $(document).bind('keydown', "shift+f2", function() {
        window.location.replace("/list");
        return false;
    });

    $(document).bind('keydown', "f3", function() {
        if($('#searchholder').length){
           $('#searchholder').focus();
        }
        console.log('f3 pressed');
        return false;
    });
}

2 个答案:

答案 0 :(得分:1)

试一试:

$(document).ready(function(){
    $(document).on("keydown", function(e){
        if(e.shiftKey && (e.which || e.keyCode || e.charCode) == 113){
                window.location.replace("/list");
                return false;
        }
        if((e.which || e.keyCode || e.charCode) == 114){
            if($('#searchholder').length)
                $('#searchholder').focus();
            console.log('f3 pressed');
            return false;
        }
    });
});

答案 1 :(得分:0)

也许这些选项正在解决问题:

$.hotkeys.options.filterInputAcceptingElements = false;
$.hotkeys.options.filterTextInputs = false;