jQuery与扫码器

本文介绍了一种使用HTML监听超市扫码器输入的方法。通过分析扫码器输入条形码的过程,作者分享了如何利用JavaScript实现自动提交条形码值的技术细节。文中还探讨了如何区分人手输入与扫码器输入的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

是想找时间写点什么,却总是拖拖拉拉一直没能写些。今天要写的这点东西是后补在4月份的。
前段时间工作中接触了我们常见的超市扫码器,我接手了这块的开发,除了后台的验证等操作,感觉新奇的就是前台html接受扫码器所输入的条形码值。
没接触过的时候或许觉得挺难以理解的,也不知道他的实现原理。真正接手试验后才发现,并没有想象的那么麻烦,因为读取条形码的过程不需要我们参与,那些已经嵌入到了扫码器中。我们可以简单的将扫码过程理解成:连续按下了键盘上对应的键盘,输入了一串对应键盘的一别编码,然后最后跟着一个13,代表着回车结束输入。
逻辑分析:
<1> 14位条形码(读取过程中会自动添加回车符1位),也就是网页需要监听扫码器输入的每一个值,将其累加起来,当达到15位时,判断第15位是否为13,即回车。
<2> 当然还要屏蔽人为输入行为,怎么判断人为和扫码器的输入呢?最终在输入速度上作为判断依据。认为输入的速度必定是慢的,机器输入的速度还是比极快的。所以采用定义setInterval(),来进行对字符串的间断性清空。


var inStr = "";
//定时清空操作
function clearStr(){
inStr = "";
}

$(document).ready(function(){
//定义清空字符串的间隔时间
var INTER_TIME = 500;
//定义setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
//setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
var int=self.setInterval("clearStr()",INTER_TIME)
document.onkeydown = kdown;

function kdown(e) {
var realkey = String.fromCharCode(event.keyCode);
inStr = inStr + realkey;
//
if(inStr.length == 15 && event.keyCode == '13'){
//提交获取的字符串
barCodeSubmit(inStr);
inStr = "";
}
}
});


laiyuan:http://chenzhiguo.cn/archives/jquery_barcode
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值