检测回车键是否按下

Detecting enter key pressed

本文关键字:是否 回车 检测      更新时间:2023-09-26

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

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

谢谢。

所以,您希望检测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)

或者,也可以编写一个函数,将输入的键的字符与只包含返回值的字符串进行比较,但这样就只是硬编码了一个返回值。

回车键的键码为:13

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

这是人们发现这个特殊事件的直接方法,但是还有其他方法可以识别数字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/