使用 jQuery 检查文本框焦点 [重复]

Posted

技术标签:

【中文标题】使用 jQuery 检查文本框焦点 [重复]【英文标题】:Check textbox focus using jQuery [duplicate] 【发布时间】:2012-08-14 13:08:25 【问题描述】:

可能重复:Using jQuery to test if an input has focus

我需要使用 jQuery 检查特定文本框是否具有焦点。所以我的代码是这样的,但它不起作用:

if (document.getElementById("lastname").focus = true) 
    alert("hello");

我的用例是这样的:我有一个文本框,当#lastname 文本框获得或失去焦点时,它应该显示或隐藏。但是,如果 #lastname 文本框失去焦点到另一个文本框,后者应该保持可见,直到它也失去焦点。

任何帮助将不胜感激。

【问题讨论】:

***.com/questions/967096/… 附注要检查 javascript 中的相等性,运算符是 ==;单个 = 用于将 RHS 的值分配给 LHS 上的变量,在这种情况下您绝对不需要。 你的代码不是 Jquery... :| 【参考方案1】:
if ($("#lastname").is(':focus')) 
    alert("hello");

jQuery docs for :focus jQuery docs for .is()


更新: 要在字段获得/失去焦点时显示/隐藏元素,请使用 focusinfocusout 事件处理程序:
$(document).ready(function() 
    $('#lastname').focusin(function() 
        $(hidden-element).show();
    ).add(hidden-element).focusout(function() 
        if ( !$(hidden-element).is(':focus') ) 
            $(hidden-element).hide();
        
    );
);
//where hidden-element is a reference to or selector for your hidden text field

【讨论】:

代码很好。但我很抱歉没有告诉实际要求。实际上,它是一个文本框,当焦点在另一个文本字段上或不在时,它会隐藏或显示。现在当焦点不在时,第二个出现的 texbox 也被隐藏。只有当焦点不在两个文本框时才应该隐藏。 @user853575 好的,我现在了解您的要求,如果hidden-element 不在焦点上,您只想隐藏它。我已经更新了我的答案。【参考方案2】:
$("#lastname").focus(function()
    alert("lastname has focus");
);

【讨论】:

请先阅读 jquery 文档,然后再进一步了解:api.jquery.com/focus 好的。谢谢。实际上,当焦点位于“姓氏”字段上时,我正在使另一个文本字段可见。它现在正在工作。但是当焦点不在“姓氏”上时,该字段仍然出现。那么它应该被隐藏起来。 @user853575 通常最好直接编辑您的问题并包含任何更新或相关信息。无论如何,请参阅我的更新答案。【参考方案3】:
if (document.getElementById("lastname").focus == true) 
        alert("hello");
    

检查 == ,使用 = 是一个赋值

【讨论】:

【参考方案4】:

你可以试试 jQuery 的 :focus 选择器。或者您可以随时添加一个类并检查该类。

【讨论】:

【参考方案5】:

试试这个

var status = $('#lastname').is(":focus");
alert(status);//false or true

【讨论】:

【参考方案6】:
<script type="text/javascript" language="javascript">

    function check() 

        if ($(document.activeElement).attr("id") === "element_name") 
            alert('checkbox is focused');
        
    

</script>

【讨论】:

以上是关于使用 jQuery 检查文本框焦点 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

jquery js 当文本框获得焦点时,自动选中里面的文字

用jquery怎么验证名字在输入完之后马上提示有没有重复的代码

在文本框失去焦点后 在文本框后面出现文字提示 用jquery怎么写

如果文本框处于焦点,则禁用 jQuery 事件

使用 jQuery 选择焦点上的所有文本

JQuery下focus()无法自动获取焦点的处理方法 jquery如何使文本框获得焦点