键盘事件:如何辨别机器和人触发的事件

复现问题:已经签到后的人员未关闭签到框,扫码器扫描另一个人员,则之前的人员会离场
原因:扫码器触发了一次回车事件
解决思路:屏蔽扫码器触发的回车事件;
通过两次键盘事件触发的间隔来判断,因为扫码器按键间隔很短(本地测试大概只有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;
            });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值