jQuery: 如果按下了键盘上的“someKey”键

5
我知道我可以使用以下代码检测被按下的按键:

$('input').keyup(function (e){
if(e.keyCode == 13){
    alert('enter');
  }
})

但我需要知道是否按下了任何键。

伪代码:

if ($('input').keyup() == true)
  { 
      doNothing();
  }
  else {
      doSomething();
  }

我该怎么做呢?


keyup 在按键松开时触发,使用 keydown 来在按键被按下时触发事件。 - Petr Peller
4个回答

9
因为按下任意键都会触发'keyup'事件,所以你可以省略if语句...
$('input').keyup(function (e){
  // do something
})

将此合并到您当前的代码中,您可以执行以下操作...
$('input').keyup(function (e){
  alert('a key was press');

  if (e.keyCode == 13) {
      alert('and that key just so happened to be enter');
   }
})

但是我需要“否则”的部分,如果没有按键按下。 我不仅需要处理“您按下了一个键”的部分,还需要处理“您未按下任何键”的部分。 - Keith L.
3
你怎么能确定用户没有按键呢?缺少.keyup()事件触发意味着用户当前没有释放按键。 - Andreas Eriksson

4
$('input').keyup(function (e){
    alert("You pressed the \"Any\"-key.");
})

2
如果您想检查用户是否没有按下任何键,则可以使用setInterval()函数。
var interval = setInterval(function() {
    //Do this if no key was pressed.
}, 2000);

请注意,您还应该清除间隔,可以使用 clearInterval() 方法。

1
$("input").keypress(function() {
  alert("hello.");
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接