将文本框绑定到“输入”键

时间:2011-05-10 00:35:15

标签: javascript jquery html

我需要将键盘上的'enter'键绑定到特定的javascript方法,但仅限于某个文本字段处于焦点时。

<input id="post" type="text" style="width:400px;"/>

我该怎么做?

我知道您可以使用表单和具有提交操作的内容来执行此操作,但是当上面的input字段成为焦点时,我可以将“输入”键绑定到特定函数吗?

2 个答案:

答案 0 :(得分:18)

$("#post").focus(function() {
    $(this).data("hasfocus", true);
});

$("#post").blur(function() {
    $(this).data("hasfocus", false);
});

$(document.body).keyup(function(ev) {
    // 13 is ENTER
    if (ev.which === 13 && $("#post").data("hasfocus")) {
        ...
    }
});

我建议您直接在$("#post")输入上绑定ENTER keyup事件,而不是在整个页面上侦听事件。

答案 1 :(得分:13)

将onkeyup事件绑定到有问题的输入。您根本不需要担心检查焦点,因为根据定义,输入只有在焦点处理时才会收到键盘事件。

我认为JQuery没问题,因为你在问题中包含了标记,所以在你的文档就绪处理程序中做了类似这样的事情:

$("#IDforyourcontrol").keyup(function(ev) {
   // 13 is ENTER
   if (ev.which === 13 && /*whatever other conditions you care about*/) {
      // do something
   }
});