html5表单扫码录入,Javascript判断扫码枪的输入,以及扫码后提交表单数据

条码扫描器其实就是一种输入设备,跟键盘一样。在控制台打印扫描过程,可以看出,扫描过程就像是在键盘上敲击相应的键,keycode和键盘是一一对应的,只是输入速度(间隔时间)比物理键盘输入要快得多。我们可以通过监听输入间隔时间,来判断到底是键盘输入还是扫描输入。

扫码枪输入的时间间隔一般在10毫秒以内,物理键盘输入要远大于这个数值,通常为80毫秒以上。因此,当输入间隔时间小于30毫秒时,判断为扫码枪输入,其余情况判断为键盘输入。

let lastTime = null;

let nextTime = null;

let code = '';

document.onkeydown = function (e) {

let keycode = e.keyCode || e.which || e.charCode;

nextTime = new Date();

if (keycode === 13) {

if (lastTime && (nextTime - lastTime < 30)) {

// 扫码枪

// do something

} else {

// 键盘

// do something

}

code = '';

lastTime = null;

e.preventDefault();

} else {

if (!lastTime) {

code = String.fromCharCode(keycode);

} else {

if (nextTime - lastTime < 30) {

code += String.fromCharCode(keycode);

} else {

code = '';

}

}

lastTime = nextTime;

}

};

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值