功能需求:使用外接设备扫码枪,扫描后获取读取出来的id来查询数据
如果想要在不点击输入框的情况下,获取扫码枪输入的数据,可以使用隐藏的输入框,在页面加载的时候设置默认焦点
//隐藏的输入框
<div style="display: none">
<input type="text" id="scanInput" name="scanInput" placeholder="扫码枪数据"
style="width: 100%; height: 100%"/>
</div>
//页面初始化加载
$(function () {
//页面加载完成后开始无焦点获取扫外接设备扫描数据
//隐藏输入框自动获取焦点
autoFocus();
}
function autoFocus() {
//设置隐藏的输入框获取默认焦点
let pFocus = document.getElementById("scanInput");
pFocus.focus();
let data = "";
let lastTime, nextTime;
let lastCode, nextCode;
document.onkeypress = function (e) {
nextCode = e.which;
nextTime = new Date().getTime();
if (lastCode != null && lastTime != null && nextTime - lastTime <= 30) {
// 扫码枪
data += String.fromCharCode(lastCode);
} else if (lastCode != null && lastTime != null && nextTime - lastTime > 100) {
// 键盘
data = "";
}
lastCode = nextCode;
lastTime = nextTime;
}
this.getScanData= function () {
this.onkeypress = function (e) {
if (e.which == 13) {
console.log("扫码枪数据:" + data);
//下方使用你要调用的方法
XXX(data);
}
}
}
this.getScanData();
}