如果没有选择输入,则在按键上触发功能

时间:2009-10-13 18:23:05

标签: jquery input focus

我是jQuery的新手,如果没有选择输入,我试图在keyPress上触发一个函数。我在测试焦点方面遇到了麻烦。以下是我目前的情况,但它无法正常工作。有什么建议吗?

var inputHasFocus = false;
$('#myForm :input').each(is(":focus")){
    inputHasFocus = true;
};

if (inputHasFocus == false){

    $("*").keypress(function (e) {
        // the function
    }); 
}

3 个答案:

答案 0 :(得分:2)

var focusedInputs = $("#myForm input:focus");
if (focusedInputs != null && focusedInputs.length > 0) { inputHasFocus = true; }

类似的东西。

答案 1 :(得分:1)

我会尝试如下:

var inputHasFocus = false;

$('#myForm :input').focus(function() {
    inputHasFocus = true; // Set true if a Form-Field is selected
}).blur(function() {
    inputHasFocus = false; // Set false if a Form-Field has left
});

$("*").keypress(function() {
    if(!inputHasFocus) {
        // check if(inputHasFocus) after the keypress has done
        // otherwise you have the basic value in the var inputHasFocus 
        // here you can run your function...
    }
}); 

jQuery文档 - 使用函数的链接:

答案 2 :(得分:0)

你也可以尝试这样的事情:

var inputHasFocus = false;

$('#myForm input').each(function () {

 if ($(this).is(":focus")) {
  inputHasFocus = true;
 }

};