Javascript 只有在没有焦点输入的情况下才进行操作

Javascript 只有在没有焦点输入的情况下才进行操作,javascript,jquery,Javascript,Jquery,我想知道你是否能帮我。我在一个有多个选项卡的页面上有多个输入。我希望左+右箭头可以更改选项卡,但只有当页面上没有输入处于焦点时 document.onkeydown = checkKey; function checkKey(e) { e = e || window.event; if (NO_INPUTS_IN_FOCUS) { if (e.keyCode == '37') { // left arrow }

我想知道你是否能帮我。我在一个有多个选项卡的页面上有多个输入。我希望左+右箭头可以更改选项卡,但只有当页面上没有输入处于焦点时

document.onkeydown = checkKey;

function checkKey(e) {

    e = e || window.event;

    if (NO_INPUTS_IN_FOCUS) {
        if (e.keyCode == '37') {
            // left arrow
        }
        else if (e.keyCode == '39') {
            // right arrow
        }
    }

}
感谢您的帮助。

试试看

document.onkeydown = checkKey;

function checkKey(e) {

    e = e || window.event;
    var target = e.target || e.srcElement,
        tag = target.tagName.toLowerCase();

    if (tag != "input" && tag.indexOf("select") ==-1 && tag != "textarea") {
        if (e.keyCode == '37') {
            // left arrow
        }
        else if (e.keyCode == '39') {
            // right arrow
        }
    }

}
试一试


对于您的案例:

if (!($("input").is(":focus"))) {    
    NO_INPUTS_IN_FOCUS = true;    
}

else {
    NO_INPUTS_IN_FOCUS = false;
}

对于您的案例:

if (!($("input").is(":focus"))) {    
    NO_INPUTS_IN_FOCUS = true;    
}

else {
    NO_INPUTS_IN_FOCUS = false;
}

令人惊讶的是,这是可以写的
NO\u input\u IN\u FOCUS=$(“输入”).is(“:focus”)
-它不适用于文本区域,除非您添加了这些选项,否则请选择-,谢谢!令人惊讶的是,这是可以写的
NO\u input\u IN\u FOCUS=$(“输入”).is(“:focus”)
-它不适用于文本区域,除非您添加了这些选项,否则请选择-,谢谢!这是一个有趣的方法,谢谢分享!在这种情况下,我会选择jquery选项,但我学到了一些新的东西,这是一种有趣的方式,谢谢分享!在这种情况下,我将使用jquery选项,但我在那里学到了一些新东西