获取键盘(小键盘)键的正确keyCode

AEM*_*iji 40 javascript jquery

我按键盘上的键时会得到代码[96..105] [0..9] 这些代码对应于字符:'abcdefgh i' 而不是[0..9],同时试图用这种方式获取代码String.fromCharCode(event.keyCode).

题:

我在表单中有3个输入.用户只允许输入第一个输入.当用户按下键盘上的键时,如果按下键是数字,则某些功能需要对其进行过滤并将其写入第二个输入,否则必须将其写入第二个输入.如何纠正?请参阅下面的链接,因为它描述了我实施的所有流程和代码

这是我的代码

Koo*_*Inc 62

使用keypress处理程序:

[somelement].onkeypress = function(e){
  e = e || event;
  console.log(String.fromCharCode(e.keyCode));
}
Run Code Online (Sandbox Code Playgroud)

另请参见:此W3C测试文档

如果你想使用keyupkeydown处理程序,你可以从中减去48 e.keyCode得到数字(所以String.fromCharCode(e.keyCode-48))

  • 在大多数浏览器中,键事件被发送到处理程序.在Internet Explorer中不是这样.该行意味着:*从处理函数的参数中获取给定的事件e,如果是false或null,则使用全局对象的事件(即`window`)*. (7认同)
  • 为什么根据触发的事件使用不同的keyCodes.我在键盘上使用相同的键! (2认同)

Sac*_*San 11

我使用以下javascript代码修复了该问题.小键盘键位于96到105之间.但实际数字小于小键盘值48.与keyup或keydown处理程序一起使用.

    var keyCode = e.keyCode || e.which;
    if (keyCode >= 96 && keyCode <= 105) {
        // Numpad keys
        keyCode -= 48;
    }
    var number = String.fromCharCode(keyCode);
Run Code Online (Sandbox Code Playgroud)