使用 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()
更新: 要在字段获得/失去焦点时显示/隐藏元素,请使用
focusin
和 focusout
事件处理程序:
$(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怎么验证名字在输入完之后马上提示有没有重复的代码