我需要将键盘上的'enter'键绑定到特定的javascript方法,但仅限于某个文本字段处于焦点时。
<input id="post" type="text" style="width:400px;"/>
我该怎么做?
我知道您可以使用表单和具有提交操作的内容来执行此操作,但是当上面的input
字段成为焦点时,我可以将“输入”键绑定到特定函数吗?
答案 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
}
});