0

jQuery のフォーカス機能について助けが必要です。入力フィールドがあり、Enter キーを押して入力フィールドにフォーカスがあるときに何かをしたいと考えています。

HTML:

<form class="myform">
<ul>
<input class="inputfield" type="text">
</ul>
</form>

およびjQuery:

$(document).keyup(function(event) {
    if (event.keyCode == 13 && $(':input').is(':focus')) {
        //do stuff here
    }
});

.is(':focus') は常に false を返します。

ここで何が問題なのか知っている人はいますか?

ありがとう!

4

3 に答える 3

1

keyup イベントを入力フィールドに直接割り当ててみませんか?

$('.inputfield').keyup(function(event) {
    if (event.keyCode == 13) {
        // Enter key pressed ... do stuff here
    }
});
于 2012-11-07T08:51:49.627 に答える
0

ハンドラーをテキストボックス自体にバインドする方がよいでしょう

$('.inputfield').on('keydown', function (event) {
    if (event.keyCode == 13) {
        //do stuff here
    }
});

jQuery ui がある場合は、使用できます

$.ui.keycode.ENTER

ご希望であれば

于 2012-11-07T08:52:29.610 に答える
0

.is(':focus')jquery 1.6+で動作するはずです。

または、「古い」JavaScript の activeElement プロパティを jquery オブジェクトにラップして、それを onlaod js コールバック関数に埋め込んでみてください。

window.onload = function(){
    $(document).keyup(function(event) {
       if (event.keyCode == 13 && $(document.activeElement).is('.inputfield')) {
           //do stuff here
       }
    });
};
于 2012-11-07T08:54:23.313 に答える