如何区分关键事件与小键盘和条形码阅读器?

时间:2017-06-02 13:10:48

标签: javascript jquery

我正在开发一种预计会使用条形码阅读器的软件。一切都工作正常,直到客户开始使用新的条形码阅读器和我们在小键盘键盘中的一些绑定开始触发之前没有发生过(我们实际上尝试过各种条形码阅读器)。

我很确定它可以通过条形码阅读器配置修复,但我们的大多数客户都是小商店,不知道这样的东西。因此,从代码中修复它对我们来说非常重要。

这是我所得到的和我想要完成的内容之间的混合代码,显然我忽略了原始代码的一部分,使其易于阅读。

$('body').keydown(function(key){
var keyCode = key.keyCode;
switch(keyCode){
    case 96:
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 102:
    case 103:
    case 104:
    case 105:
    case 110:
        if(not_actually_from_keyboard_but_barcode){
            //step out
        }
        else{
            doNumPadStuff(keyCode);
        }
        break;
});

非常感谢任何解决方案或解决问题。

1 个答案:

答案 0 :(得分:0)

也许以下帮助

数字键盘可能会产生不同的键码,具体取决于NumLock状态。

$(document).keyup(function(e) {    
    /* OPTIONAL: Only if you want other elements to ignore event */
    e.preventDefault();
    e.stopPropagation();



    var keyCode = (e.keyCode ? e.keyCode : e.which);
    debuger //check what keyCode is saying. to get this press f12 to get browser debugger.

    switch(keyCode){
    case 96: //numpad 0
    case 97: //numpad 1
    case 98: //numpad 2
    case 99: //numpad 3
    case 100: //numpad 4
    case 101: //numpad 5
    case 102: //numpad 6
    case 103: //numpad 7 
    case 104: //numpad 8
    case 105: //numpad 9
    case 110: //numpad .

    if(not_actually_from_keyboard_but_barcode){
        //step out
    }
    else{
        doNumPadStuff(keyCode);
    }
    break;
});