jQuery焦点函数返回false

时间:2012-11-07 08:46:19

标签: jquery focus

我需要一些关于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。

有谁知道这里的问题是什么?

谢谢!

3 个答案:

答案 0 :(得分:1)

为什么不直接将keyup事件分配给输入字段?

$('.inputfield').keyup(function(event) {
    if (event.keyCode == 13) {
        // Enter key pressed ... do stuff here
    }
});

答案 1 :(得分:0)

最好将处理程序绑定到文本框本身

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

如果你有jQuery ui,你可以使用

$.ui.keycode.ENTER

如果您愿意

答案 2 :(得分:0)

.is(':focus')适用于jquery 1.6 +。

或者您可以尝试在jquery对象中包装'old'javascript activeElement属性并将其嵌入onlaod js回调函数中:

window.onload = function(){
    $(document).keyup(function(event) {
       if (event.keyCode == 13 && $(document.activeElement).is('.inputfield')) {
           //do stuff here
       }
    });
};