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 回答