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