在jquery中是否有任何方法可以检测 Enter 键是否已被按下?
我知道我们可以使用keycodes / charset来识别 Enter 键,但我不需要在我的js脚本中硬编码整数值,因为它将成为一个神奇的数字。我需要知道是否有任何其他可能的方法来检测 Enter 按键,这类似e.shiftKey
,用于检测使用事件对象按住Shift键。
感谢。
答案 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");
}
});
但是,如果您不想使用整数来检测密钥,我们可以使用十六进制。