1

可能重复:
使用 jQuery 测试输入是否有焦点

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

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

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

任何帮助将不胜感激。

4

6 回答 6

16
if ($("#lastname").is(':focus')) {
    alert("hello");
}

jQuery 文档用于:focus
jQuery 文档用于.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
于 2012-08-18T07:24:58.450 回答
1
$("#lastname").focus(function(){
    alert("lastname has focus");
});
于 2012-08-18T07:23:42.810 回答
1
if (document.getElementById("lastname").focus == true) {
        alert("hello");
    }

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

于 2012-08-18T07:57:44.970 回答
0

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

于 2012-08-18T07:25:04.217 回答
0
<script type="text/javascript" language="javascript">

    function check() {

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

</script>
于 2012-08-18T07:26:52.590 回答
0

试试这个

var status = $('#lastname').is(":focus");
alert(status);//false or true
于 2012-08-18T07:32:27.107 回答