如果输入是聚焦的,则禁用keydown快捷方式

时间:2011-08-13 12:54:42

标签: javascript jquery keydown keycode

我几乎没有使用密钥代码集中他们的输入。

我想:当关注输入时,禁用键码功能,当没有聚焦时,启用。

我试过了:

var hotkeys_function = false;
if (!hotkeys_function ){
    $(document).keydown(function(e) { 
        if (e.keyCode == 71) { 
        $("#input1").fadeIn();
        $("#input1").focus().select();
            var hotkeys_function = true;
        }
    });

}

而且:

if ($("#input1").select()) {
    var hotkeys_function = true;
}

但似乎没有工作。

2 个答案:

答案 0 :(得分:2)

不是$("#input1").select()而是$("#input1").focus()

事实上,不需要变量,你可以动态地检查和返回输入是否有焦点。

$(document).keydown(function(event) {
    if($("#input1").is(":focus")) return; //Will fail if already focused. 

    if (event.keyCode == 71) { //g 
        $("#input1").fadeIn();
        $("#input1").focus().select();
    }
});

<强> Working example

答案 1 :(得分:0)

你可以做的是,没有任何其他变量:http://jsfiddle.net/pimvdb/YnVPQ/

$(document).keydown(function(e) {
    if (e.keyCode == 71) {
        if($("input").is(":focus")) return; // abort if any focused textboxes

        $("#input1").fadeIn();
        $("#input1").focus().select();
    }
});