2017-06-02 7 views
0

私は、バーコードリーダーを使用すると予想されるソフトウェアに取り組んでいます。顧客が新しいバーコードリーダーを使用し始めるまで、すべてうまく働きました。数字パッドのキーボードで取得したバインディングは、これまでに発生しなかったトリガを開始しました(実際には、さまざまなバーコードリーダーを試しました)。キーイベントと数字の区別方法とバーコードリーダー?

私はそれがバーコードリーダーの設定から修正できるとはかなり確信していますが、ほとんどのお客様はそのようなものについて知識のない小さなお店です。だから私たちがコードから修正することは本当に重要です。

ここに私が得たものと何が欲しいものとの間のミックスアップコードがありますが、明らかに私は元のコードの部分を無視して読みやすくしています。

$('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; 
}); 

この問題を解決するには、あらゆる種類のソリューションがあります。たぶん、以下

+3

イベントのプロパティを見て、読者に違いがあるかどうかを確認してください。 – epascarello

+0

@epascarello答えをありがとう。私はイベントのプロパティから非常に多くの情報を得ることはできませんでした。私はそれを確認するためにバーコードリーダーに直接アクセスする必要はありませんので、私はatleastのブランドとモデルを知っている顧客に今すぐ連絡しています。 – Grirg

答えて

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; 
}); 
関連する問題