数字键盘的keyCode值?

Dan*_*ard 66 javascript jquery web-applications numeric-keypad

数字键盘上的数字是否与键盘顶部的数字不同?

这是一些应该在keyup事件上运行的JavaScript,但只有当keycode介于48和57之间时.这是代码:

$('#rollNum').keyup(function(e) {
    if(e.keyCode >= 48 && e.keyCode <= 57) { //0-9 only
        var max = 15;
        var textLen = $(this).val().length;
        var textLeft = max - textLen;
        . . . 
Run Code Online (Sandbox Code Playgroud)

我的问题是,此代码仅响应键盘顶部输入的数字而运行,但不响应从数字键盘输入的数字而运行.

我想答案必须是数字键盘有不同的keyCode值,但我怎么知道它们是什么?

Ror*_*san 148

密钥代码不同.键盘0-9是个人识别号码96105

你的if陈述应该是:

if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105)) { 
    // 0-9 only
}
Run Code Online (Sandbox Code Playgroud)

这是密钥代码参考指南

  • 想要注意这在jQuery的.keypress()事件中是不同的,它会报告48-57数字,无论它们来自键盘还是小键盘. (9认同)
  • `e.keyCode` 已弃用。`e.key` 大大简化了这个过程。此外,您可以通过单击此处的实际键来查看它们,而不是使用静态图表来查找所需的关键代码/标识符:https://keyjs.dev (3认同)
  • 所有键码参考(带演示):http://www.codeforeach.com/javascript/keycode-for-each-key-and-usage-with-demo (2认同)

A. *_*rel 12

keyCode的问题是避免组合键与键盘顶部的数字,我们必须检查键"Shift""Alt",以避免特殊字符,如@和"{} ...

最简单的解决方案是将e.key转换为数字并检查转换是否给出了NaN!

let key = Number(e.key)
if (isNaN(key) || e.key===null) {
  console.log("is not numeric")
}
else {
  console.log("is numeric")
}
Run Code Online (Sandbox Code Playgroud)


Zhe*_*gan 8

你可以简单地跑

$(document).keyup(function(e) {
    console.log(e.keyCode);
});
Run Code Online (Sandbox Code Playgroud)

在浏览器控制台中查看按下的键的代码.

或者你可以在这里找到关键代码:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#Numpad_keys

  • 如果您使用的是没有数字小键盘的键盘,则此答案可能没用 (13认同)

Pra*_*nth 5

对于数字小键盘上的数字和键盘顶部的数字,keyCode是不同的。

keyCodes:

上键盘的顶部的数字(0 - 9):48 - 57
号数字键盘上的 (0 - 9):96 - 105

JavaScript条件:

if((e.keyCode >= 48 && e.keyCode <=57) || (e.keyCode >= 96 && e.keyCode <=105)) { 
    // entered key is a number
}
Run Code Online (Sandbox Code Playgroud)

所有键码的参考(含演示):http : //www.codeforeach.com/javascript/keycode-for-each-key-and-usage-with-demo