我是jQuery的新手,如果没有选择输入,我试图在keyPress上触发一个函数。我在测试焦点方面遇到了麻烦。以下是我目前的情况,但它无法正常工作。有什么建议吗?
var inputHasFocus = false;
$('#myForm :input').each(is(":focus")){
inputHasFocus = true;
};
if (inputHasFocus == false){
$("*").keypress(function (e) {
// the function
});
}
答案 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;
}
};