使用JavaScript獲取掃碼槍掃描得到的條形碼的思路代碼詳解
下面通過(guò)實(shí)例代碼給大家介紹js掃碼槍掃描條形碼的實(shí)現(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 對(duì)應(yīng)鍵碼值 48-57
//數(shù)字鍵盤 數(shù)字鍵0-9 對(duì)應(yīng)鍵碼值 96-105
else if((nextCode>=48&&nextCode<=57) || (nextCode>=96&&nextCode<=105)){
//數(shù)字鍵盤的鍵碼值對(duì)應(yīng)的字符有問(wèn)題,所以手動(dò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.注冊(cè)onkeydown事件,捕獲數(shù)字鍵的按下事件
2.計(jì)算按下數(shù)字鍵的時(shí)間間隔,若間隔小于30毫秒,則為掃碼槍輸入
3.捕獲Enter案件的按下事件,判斷捕獲的掃碼槍輸入數(shù)值是否為空,不為空,對(duì)相應(yīng)的文本框賦值,同時(shí)觸發(fā)按找條形碼查找商品的方法
總結(jié)
到此這篇關(guān)于使用JavaScript獲取掃碼槍掃描得到的條形碼的思路代碼詳解的文章就介紹到這了,更多相關(guān)js掃碼槍掃描條形碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(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),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Js類的靜態(tài)方法與實(shí)例方法區(qū)分及jQuery拓展的兩種方法
這篇文章主要介紹了Js類的靜態(tài)方法與實(shí)例方法區(qū)分及jQuery拓展的兩種方法 的相關(guān)資料,對(duì)靜態(tài)方法(Static)和實(shí)例方法(非Static)不太理解的朋友可以一起學(xué)習(xí)下2016-06-06
javascript 通過(guò)鍵名獲取鍵盤的keyCode方法
下面小編就為大家分享一篇javascript 通過(guò)鍵名獲取鍵盤的keyCode方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
JavaScript判斷表單提交時(shí)哪個(gè)radio按鈕被選中的方法
這篇文章主要介紹了JavaScript判斷表單提交時(shí)哪個(gè)radio按鈕被選中的方法,實(shí)例分析了javascript操作表單radio按鈕的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
JavaScript無(wú)阻塞加載和defer、async詳解
JS具有阻塞特性,當(dāng)瀏覽器在執(zhí)行js代碼時(shí),不能同時(shí)做其它事情,所有瀏覽器在下載JS的時(shí)候,會(huì)阻止一切其他活動(dòng),比如其他資源的下載,內(nèi)容的呈現(xiàn)等等。至到JS下載、解析、執(zhí)行完畢后才開(kāi)始繼續(xù)并行下載其他資源并呈現(xiàn)內(nèi)容。2017-02-02
bootstrapTable+ajax加載數(shù)據(jù) refresh更新數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了bootstrapTable+ajax加載數(shù)據(jù),以及refresh更新數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
JavaScript中的Web worker多線程API研究
這篇文章主要介紹了JavaScript中的Web worker多線程API研究,Web worker是HTML5的API,允許網(wǎng)頁(yè)在安全的情況下執(zhí)行多線程代碼,需要的朋友可以參考下2014-12-12

