jquery - 除一种情况外,专注于输入

标签 jquery input focus

我的问题是。我的网站上有一个条形码扫描仪,用于验证学生是否在教室。我的表单的 INPUT 元素必须始终具有焦点,以便从条形码扫描仪接收代码。

我的代码是:

    $("#codebarre").focus()
    $("body").click(function(){
        $("#codebarre").focus()      
})

第二个条目是为了在我单击页面时恢复焦点。我的问题是:我可以在页面的另一个输入中写评论。使用我的代码,确实在单击我的输入后,#codebar 恢复焦点,并且我无法在我的输入中写入。所以我的需要是:除非我在评论输入中单击(焦点),否则始终将焦点放在#codebar上。

我试试这个:

    $("#codebarre").focus()
    $("body").click(function(){
    if( !$(".remark").focus() ){
        $("#codebarre").focus()  
    }        
})

我的代码不起作用。你能告诉我我做错了什么吗?

最佳答案

您无法以这种方式确定控件是否具有焦点。 focus() 只会将焦点设置到该控件。有关如何确定控件是否具有焦点的详细说明,请参阅此答案:Using jQuery to test if an input has focus

如果您使用 jQuery 1.6,您应该能够执行以下操作:

$("body").click(function(){
    if (!$(".remark").is(":focus")) {
        $("#codebarre").focus()  
    }

编辑
如果您使用的是早期版本的 jQuery,则可以使用 $(document.activeElement) 来确定哪个控件具有焦点。在这种情况下,代码应该是:

$("body").click(function(){
    if (!$(document.activeElement).hasClass("remark")) {
        $("#codebarre").focus()  
    }

关于jquery - 除一种情况外,专注于输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6178195/

相关文章:

javascript - leafletjs - marker.bindPopup - 保持所有弹出窗口打开

c++ - char **argv[] 尝试从命令行获取输入时出现段错误

html - 如何在输入字段的中间对齐图像?

javascript - 将焦点设置在使用 jQuery load 方法导入的其他页面元素上

javascript - 仅显示 localStorage 数据数组中的第一项

javascript - jQuery-mobile Accordion 中动态内容的高度

javascript - JQuery 未捕获类型错误

input - perl6 有没有办法进行可编辑的提示输入?

python - 如何让 Tkinter 窗口跳到前面?

java - 更改 JButton 的大小和焦点上标签的文本 JButton 的增益和丢失事件