如何检测数字键盘 在 JavaScript 中输入

How can I detect numeric keypad Enter in Javascript

本文关键字:键盘 JavaScript 输入 数字 何检测 检测      更新时间:2023-09-26

我想让Javascript仅从数字键盘Enter键响应按键或按键事件,而不是通常的Enter键。 根据jQuery按键文档中的演示,它们似乎都生成了相同的事件数据,所以我不确定这是否可能。

它们确实在JavaScript可以访问的抽象级别生成相同的击键数据。 请记住,JavaScript 存在于沙箱(浏览器)中,并且无法直接访问底层硬件(有很多平台根本没有数字键盘,但确实有浏览器)。

这是做不到的。

编辑:

某些浏览器已添加对此的支持,但似乎不是通用的(请参阅另一个答案)。

现在可以

将数字键盘输入作为单独的键检测到。使用 KeyboardEvent.location 属性。这样,您可以首先检查键码 13,然后检查键是否在数字键盘上,从而破坏数字键盘输入。

https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/location

例:

    window.onkeydown=function(ev)
    {
         var e= ev || window.event,
         key = e.keyCode
         if ((key===13) && (e.location===3)) {
            console.log("got ya");
            console.log(e.location);
         }
   }