检测到按下的回车键

时间:2014-06-04 07:15:47

标签: javascript jquery

在jquery中是否有任何方法可以检测 Enter 键是否已被按下?

我知道我们可以使用keycodes / charset来识别 Enter 键,但我不需要在我的js脚本中硬编码整数值,因为它将成为一个神奇的数字。我需要知道是否有任何其他可能的方法来检测 Enter 按键,这类似e.shiftKey,用于检测使用事件对象按住Shift键。

感谢。

3 个答案:

答案 0 :(得分:4)

因此,您需要检测正在按下的 Enter 键,而不会为密钥代码硬编码13

现在,我可以建议使用6.5*2作为键码,然后,这很愚蠢。

真正的答案是 Enter 键没有内置常量,就像 Shift 键一样。

Shift 的原因是因为该键经常与其他键组合使用。例如,当按 Shift + A 时,您无法检测到 Shift keyDown事件,因为修饰符的事件包含当您处理 A keyDown事件时已经通过。

坦率地说,你唯一的真正的选项是对应用程序范围的常量进行硬编码,该常量说明了以下内容:

window.keyCodes = {
    Enter: 13,
    SomeKey: 99
}

然后你可以这样检查:

if(e.keyCode === keyCodes.Enter)

或者,可以编写一个函数,将输入的键的字符与仅包含返回的字符串进行比较,但是您只需要以任何方式对返回进行硬编码。

答案 1 :(得分:1)

回车键的键码是:13

if(e.keyCode == 13)
  //do something...

答案 2 :(得分:0)

这是人们检测此特定事件的直接方式,但还有其他方法可以识别数字13。

var DOM_VK_RETURN = 13;

$(document).on('keydown', function(e) {
  var code = e.keyCode || e.which;
  if(code == DOM_VK_RETURN) {
    console.log("Enter key pressed");
  }
});

但是,如果您不想使用整数来检测密钥,我们可以使用十六进制。

http://jsfiddle.net/hk2eL/3/