最近做一套出入库系统出入库需要使用扫码枪扫码,客户那边需求是在文本框中只能使用扫码枪不能使用键盘输入,大概解决办法就是检测他每一个数字输入距离上一个输入的时间如果大于50毫秒就,输入的数值不会叠加,否则叠加如果发现回车提交。
//一个全局的时间
let start = new Date();
let code = "";
//每输入一个数字会调用js方法
$('#deviceCode').on("keydown", (e) => {
//获取当前时间
now = new Date();
//如果这次输入距离上次输入 大于50毫秒
if (now - start > 50) {
start = now;
//只会输入一个数字
code = String.fromCharCode(e.keyCode);
console.log("请使用扫码枪继续扫码!");
} else {
//如果在50毫秒内会继续叠加
code += String.fromCharCode(e.keyCode);
if (e.keyCode == "13") {
console.log("检测到回车");
//发起请求
}
}
});