只有在没有输入焦点的情况下才能做某事

时间:2016-04-18 11:54:57

标签: javascript jquery

想知道你是否可以帮助我。我在一个带有多个tab的页面上有几个输入。我希望左+右箭头更改选项卡,但仅当页面上的输入没有被关注时

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
        }
    }

}

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:4)

根据您的情况:

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

else {
    NO_INPUTS_IN_FOCUS = false;
}

答案 1 :(得分:1)

尝试

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
        }
    }

}