如果未单击其他输入字段,请将焦点保持在文本输入字段上

时间:2015-12-31 04:26:10

标签: javascript jquery html

我正在尝试创建一个onblur事件,任何时候只要有人点击页面上的任何地方,它就会专注于该元素,除非它是一个特定元素,然后它将重新聚焦到该特定元素。 我可能会离开,但这是我尝试过的,无论如何它都会专注于Barcode元素。

function stayOnBarcode() {
    var QTY = document.getElementById("QTY");
    var Barcode = document.getElementById("Barcode");
    if (Barcode.value === "") {
        if (QTY.focus() === true) {
            QTY.focus();
        }
        else if (document.hasFocus() === true) {
            Barcode.focus();
        }
    }
    else {
        Barcode.focus();
    }
}

1 个答案:

答案 0 :(得分:2)

这样的事情怎么样:

$(document).on("mousedown", function(e) {
    clicked = $(e.target)
})

$("input").on("blur", function() {
    if (!clicked.is("#QTY") && !clicked.is("#Barcode")) {
        $(this).focus()
    }
})

它将最近点击的元素存储在变量clicked中,然后在blur事件中检查last_clicked是否为#QTY#Barcode以外的其他内容。如果是这样,它会重新聚焦被模糊的input

您可能需要调整它以符合您的确切条件,或者随意添加问题的细节。

看看这个工作小提琴:https://jsfiddle.net/oez0488h/63/