Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果未单击其他输入字段,请将焦点放在文本输入字段上_Javascript_Jquery_Html - Fatal编程技术网

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

Javascript 如果未单击其他输入字段,请将焦点放在文本输入字段上,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试创建一个onblur事件,在这个事件中,每当有人单击页面上的任何位置时,它都将保持对该元素的关注,除非它是一个特定元素,否则它将重新聚焦到该特定元素。 我可能有点不对劲,但这正是我所尝试的,无论发生什么,它都只关注条形码元素 function stayOnBarcode() { var QTY = document.getElementById("QTY"); var Barcode = document.getElementById("Barcode"); i

我正在尝试创建一个onblur事件,在这个事件中,每当有人单击页面上的任何位置时,它都将保持对该元素的关注,除非它是一个特定元素,否则它将重新聚焦到该特定元素。 我可能有点不对劲,但这正是我所尝试的,无论发生什么,它都只关注条形码元素

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();
    }
}

像这样的怎么样:

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

$("input").on("blur", function() {
    if (!clicked.is("#QTY") && !clicked.is("#Barcode")) {
        $(this).focus()
    }
})
它将最近单击的元素存储在变量
clicked
中,然后在
blur
事件中检查上次单击的
是否不是
#QTY
#Barcode
。如果是,它将重新聚焦模糊的
输入

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


查看这把工作小提琴:

如果您将输入焦点放在页面加载上,那么除非您单击任何其他输入或链接,否则它将保持焦点,这就是您想要的方式吗?看起来很棒!由于某种原因,当我尝试实现它时,它不起作用。我是否必须以某种方式将其添加到onload中?还是onclick什么的?@Tommy Graffam你在运行JQuery文件吗?如果您已经正确地加载了JQuery,只需执行以下操作,以确保所有内容都在加载时运行:
$(document).ready(函数(){\\add complete-in-here})
好的,这在chrome中非常有效!!但是它在firefox中不起作用,或者IE和firefox中的控制台没有告诉我任何事情,IE中的控制台说“聚焦”是未定义的。我还需要让这段代码在WindowsMobile5IE中运行,我相信它与IE6类似。对此有什么建议吗?你对如何处理这个问题有什么建议吗?