使用JavaScript獲取掃碼槍掃描得到的條形碼的思路程式碼詳解
阿新 • • 發佈:2020-06-12
下面通過例項程式碼給大家介紹js掃碼槍掃描條形碼的實現方法,具體程式碼如下所示:
var keycode = ""; var lastTime=null,nextTime; var lastCode=null,nextCode; document.οnkeydοwn=function(e){ if(window.event){ // IE nextCode = e.keyCode } else if(e.which){ // Netscape/Firefox/Opera nextCode = e.which } //+鍵,增加新資料行 if(nextCode==107 || nextCode==187){ addNewGoodLine(); } //-鍵,刪除最後一條資料行 else if(nextCode==109 || nextCode==189){ $(".new_products:last").remove(); } //字母上方 數字鍵0-9 對應鍵碼值 48-57 //數字鍵盤 數字鍵0-9 對應鍵碼值 96-105 else if((nextCode>=48&&nextCode<=57) || (nextCode>=96&&nextCode<=105)){ //數字鍵盤的鍵碼值對應的字元有問題,所以手動調整鍵碼值 var codes = {'48':48,'49':49,'50':50,'51':51,'52':52,'53':53,'54':54,'55':55,'56':56,'57':57,'96':48,'97':49,'98':50,'99':51,'100':52,'101':53,'102':54,'103':55,'104':56,'105':57 }; nextCode = codes[nextCode]; nextTime = new Date().getTime(); if(lastCode == null && lastTime == null) { keycode = String.fromCharCode(nextCode); } else if(lastCode != null && lastTime != null && nextTime - lastTime <= 30) { keycode += String.fromCharCode(nextCode); } else{ keycode = ""; lastCode = null; lastTime = null; } lastCode = nextCode; lastTime = nextTime; } //13 為按鍵Enter else if(nextCode==13 && keycode!= ""){ var code = $(".new_products:last .code").val(); if(code != ""){ //最後一行已錄入資料,重新生成新行 addNewGoodLine(); } $(".new_products:last .code").val(keycode).blur(); keycode = ""; lastCode = null; lastTime = null; } } function addNewGoodLine(){ //生成新資料行 var html = '<tr class="new_products">'; html += ' <td></td>'; html += ' <td>'; html += ' <input type="text" class="code" οnblur="getProductDetail()" />'; html += ' </td>'; html += '</tr>'; } function getProductDetail(){ //獲取商品的詳細資訊,然後賦值 }
思路:
1.註冊onkeydown事件,捕獲數字鍵的按下事件
2.計算按下數字鍵的時間間隔,若間隔小於30毫秒,則為掃碼槍輸入
3.捕獲Enter案件的按下事件,判斷捕獲的掃碼槍輸入數值是否為空,不為空,對相應的文字框賦值,同時觸發按找條形碼查詢商品的方法
總結
到此這篇關於使用JavaScript獲取掃碼槍掃描得到的條形碼的思路程式碼詳解的文章就介紹到這了,更多相關js掃碼槍掃描條形碼內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!