1

重複の可能性:
jQuery を使用して、入力にフォーカスがあるかどうかをテストする

特定のテキスト ボックスにフォーカスがあるかどうか、または jQuery を使用していないかどうかを確認する必要があります。したがって、私のコードは次のようになりますが、機能していません:

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

私のユースケースは次のとおりです#lastname。テキストボックスがフォーカスを獲得または失ったときに表示または非表示にするテキストボックスがあります。ただし、#lastnameテキストボックスが他のテキストボックスにフォーカスを失った場合、後者もフォーカスを失うまで表示されたままにする必要があります。

どんな助けでも大歓迎です。

4

6 に答える 6

16
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
于 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
<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

jQuery の:focusセレクターを試すことができます。または、いつでもクラスを追加して、そのクラスを確認できます。

于 2012-08-18T07:25:04.217 に答える
0

これを試して

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