使用JavaScript獲取掃碼槍掃描得到的條形碼的思路代碼詳解
下面通過實例代碼給大家介紹js掃碼槍掃描條形碼的實現(xiàn)方法,具體代碼如下所示:
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 } //+鍵,增加新數(shù)據(jù)行 if(nextCode==107 || nextCode==187){ addNewGoodLine(); } //-鍵,刪除最后一條數(shù)據(jù)行 else if(nextCode==109 || nextCode==189){ $(".new_products:last").remove(); } //字母上方 數(shù)字鍵0-9 對應(yīng)鍵碼值 48-57 //數(shù)字鍵盤 數(shù)字鍵0-9 對應(yīng)鍵碼值 96-105 else if((nextCode>=48&&nextCode<=57) || (nextCode>=96&&nextCode<=105)){ //數(shù)字鍵盤的鍵碼值對應(yīng)的字符有問題,所以手動調(diào)整鍵碼值 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 != ""){ //最后一行已錄入數(shù)據(jù),重新生成新行 addNewGoodLine(); } $(".new_products:last .code").val(keycode).blur(); keycode = ""; lastCode = null; lastTime = null; } } function addNewGoodLine(){ //生成新數(shù)據(jù)行 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(){ //獲取商品的詳細(xì)信息,然后賦值 }
思路:
1.注冊onkeydown事件,捕獲數(shù)字鍵的按下事件
2.計算按下數(shù)字鍵的時間間隔,若間隔小于30毫秒,則為掃碼槍輸入
3.捕獲Enter案件的按下事件,判斷捕獲的掃碼槍輸入數(shù)值是否為空,不為空,對相應(yīng)的文本框賦值,同時觸發(fā)按找條形碼查找商品的方法
總結(jié)
到此這篇關(guān)于使用JavaScript獲取掃碼槍掃描得到的條形碼的思路代碼詳解的文章就介紹到這了,更多相關(guān)js掃碼槍掃描條形碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js中將HTMLCollection/NodeList/偽數(shù)組轉(zhuǎn)換成數(shù)組的代碼
js中將HTMLCollection/NodeList/偽數(shù)組轉(zhuǎn)換成數(shù)組的代碼,需要的朋友可以參考下。2011-07-07淺談es6 javascript的map數(shù)據(jù)結(jié)構(gòu)
本篇文章主要介紹了淺談es6 javascript的map數(shù)據(jù)結(jié)構(gòu),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12Js類的靜態(tài)方法與實例方法區(qū)分及jQuery拓展的兩種方法
這篇文章主要介紹了Js類的靜態(tài)方法與實例方法區(qū)分及jQuery拓展的兩種方法 的相關(guān)資料,對靜態(tài)方法(Static)和實例方法(非Static)不太理解的朋友可以一起學(xué)習(xí)下2016-06-06JavaScript判斷表單提交時哪個radio按鈕被選中的方法
這篇文章主要介紹了JavaScript判斷表單提交時哪個radio按鈕被選中的方法,實例分析了javascript操作表單radio按鈕的技巧,非常具有實用價值,需要的朋友可以參考下2015-03-03bootstrapTable+ajax加載數(shù)據(jù) refresh更新數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了bootstrapTable+ajax加載數(shù)據(jù),以及refresh更新數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08JavaScript中的Web worker多線程API研究
這篇文章主要介紹了JavaScript中的Web worker多線程API研究,Web worker是HTML5的API,允許網(wǎng)頁在安全的情況下執(zhí)行多線程代碼,需要的朋友可以參考下2014-12-12