廢話(huà)不多說(shuō),直接上代碼!
PS:前提,首先確定掃碼槍掃碼后的結(jié)束符,以回車(chē)結(jié)束。至于怎么設(shè)置,請(qǐng)咨詢(xún)你的賣(mài)家!
約定:需要獲取掃碼槍結(jié)果的input的ID為keyWords,頁(yè)面上其他的input或其他輸入控件是有ID的
PS:敲黑板:頁(yè)面上其他的input或其他輸入控件是有ID的
$(function () {
//keyword獲得焦點(diǎn)
$("#keyWords").focus();
$(document).keyup(function(event){
var val = $("#keyWords").val();
//偽類(lèi) 是否獲得焦點(diǎn)判斷
var $focused = $(':focus');
var eventCode = event.keyCode;
if(eventCode ==13 && (val!=null && val!='')){
//你的回車(chē)邏輯
test();
return false;
}
/*排除其他特殊字符,只對(duì)數(shù)字、字母、逗號(hào)進(jìn)行錄入*/
else if((eventCode >=48 && eventCode<= 57)||(eventCode >=65 && eventCode<= 90)||(eventCode ==102)){
//如果keyWords獲得焦點(diǎn),那么輸入值的時(shí)候就不進(jìn)行操作。避免在輸入值和輸入漢字的時(shí)候出現(xiàn)字符重復(fù)
//如果沒(méi)有獲得焦點(diǎn),那么將掃碼槍獲得的值放到keyWords中
var hasFocus = $('#keyWords').is(':focus');
//在有多個(gè)input的情況下,其他input輸入值后會(huì)將輸入的值也放入keyWords中,這樣我們就需要對(duì)其他可輸入值的控件進(jìn)行驗(yàn)證
//獲取當(dāng)前獲得焦點(diǎn)的控件ID
var activeId = document.activeElement.id;
console.log("當(dāng)前控件的ID:"+activeId+" 當(dāng)前控件的類(lèi)型是:"+document.activeElement.tagName);
if(!hasFocus && (activeId==null||activeId=='')){
$("#keyWords").val(val+event.key);
}
return true;
}
});
});
如果你的頁(yè)面上除了keyWords的input就沒(méi)有其他的輸入控件了,那么可以在你的回車(chē)業(yè)務(wù)后面加上讓所有控件失去焦點(diǎn),這樣就不用去判斷當(dāng)前的獲得焦點(diǎn)的ID了
//移除頁(yè)面上所有控件的焦點(diǎn)事件(所有控件失去焦點(diǎn))
$("*").blur();