Вызов функции при нажатии клавиш, если не выбран ни один вход - PullRequest
2 голосов
/ 13 октября 2009

Я новичок в jQuery и пытаюсь запустить функцию на клавише, если нет выбранных входов. У меня проблемы с тестированием на фокус. Ниже приведено то, что у меня есть, но оно работает неправильно. Любой совет?

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

if (inputHasFocus == false){

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

Ответы [ 3 ]

2 голосов
/ 13 октября 2009
var focusedInputs = $("#myForm input:focus");
if (focusedInputs != null && focusedInputs.length > 0) { inputHasFocus = true; }

Что-то в этом роде.

1 голос
/ 13 октября 2009

Я бы попробовал это следующим образом:

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 - ссылки на используемые функции:

0 голосов
/ 08 июня 2012

Вы также можете попробовать что-то вроде этого:

var inputHasFocus = false;

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

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

};
...