如何检查输入字段是否处于焦点?

新手上路,请多包涵

我只想在我的输入字段处于焦点状态时发送 Ajax 请求(即,光标在其中。这是我的代码:

 function anewFunc() {
    $(document).ready(function(){
        var chatattr = $(".chatwindow").css("visibility");
        var chattitle = $("#hideid").text();
        if (chatattr == "visible") {
            if (MY INPUT FIELD HAS FOCUS) {
                $.ajax({
                    url: 'seen1.php',
                    type: 'post',
                    data: "ctitle="+chattitle,
                    success: function(result9) {},
                    error: function() {}
                });
            }
        } else {
            $.post("seendefault.php");
        }
    });
}

$(document).ready(function(){
    var zzz = setInterval(anewFunc, 2000);
});

现在我不知道每次输入是否有焦点时如何检查。是否有任何 jQuery 解决方案?

编辑:一些答案建议我:关注。所以我试了一下这个:

 $(document).ready(function(){
                           if($("#msgtypeid").is(":focus")){
                               alert("Hello");
                           }
                           });

HTML:

 <form id="chatform" name="form4" method="post" required enctype="multipart/form-data">
          <input id="msgtypeid" type="text" name="cmessage" autocomplete="off" autofocus/>
        </form>

但它不起作用。有什么不对?

原文由 Vikas Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 277
2 个回答

我认为你需要这种类型的检查:

 var hasFocus = $('#idOfTheInputElement').is(':focus');
if(hasFocus){
    //logic here
}

原文由 SamGhatak 发布,翻译遵循 CC BY-SA 3.0 许可协议

focus 事件处理程序添加到您的 input 元素,每次该元素获得焦点时都会调用您的回调函数。

 document.addEventListener('DOMContentLoaded', function() {
    document.getElementById('example').addEventListener('focus', function() {
        alert('The input is focused.');
    });
});

现场演示

原文由 Marat Tanalin 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题