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是个人识别号码96来105
你的if陈述应该是:
if ((e.keyCode >= 48 && e.keyCode <= 57) || (e.keyCode >= 96 && e.keyCode <= 105)) {
// 0-9 only
}
Run Code Online (Sandbox Code Playgroud)
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)
你可以简单地跑
$(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
对于数字小键盘上的数字和键盘顶部的数字,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