复现问题:已经签到后的人员未关闭签到框,扫码器扫描另一个人员,则之前的人员会离场
原因:扫码器触发了一次回车事件
解决思路:屏蔽扫码器触发的回车事件;
通过两次键盘事件触发的间隔来判断,因为扫码器按键间隔很短(本地测试大概只有1-4毫秒),而人为操作则比较长(快速双击键盘大概100+毫秒),通过间隔事件来判定是否需要触发回车事件;
解决代码:
var lastPress =(new Date()).getTime();
var nowPress =0;
$(document).off('keydown').keydown(function(e){
nowPress = (new Date()).getTime();
var midTime = nowPress-lastPress;
if(midTime>100){
if(self.config.status=='in'){
if(e.keyCode==13){
self.doms.submit.trigger('click')
}
}
}
lastPress = nowPress;
});