js 获取扫码枪输入值 监听扫码枪输入事件

扫码枪:外设输入设备。输入时触发keydown 事件。扫码结束时自动输入enter键值。

百度的方法主流是监听:keydown时间不一样来判断是键盘输入还是扫码枪输入。然后记录到js变量。或者元素标签上

这是不想给输入框设置焦点时的做法。

 

而我懒得区分输入设备是什么,手动输入、还是扫码输入我都不care。搞清楚这点后,只能给输入框默认个焦点就解决了。唯一难题时实际操作时需要挪动鼠标点一下

输入框获取光标焦点。而只要解决这个难题比上面判断输入时间间隔不要太简单。我的思路如下:

  1. 弹出一个界面用于获取扫码枪的扫描结果
  2. 当鼠标位于弹出界面内,默认设置输入框的光标焦点事件。(因为刚弹出的界面你没有设置光标焦点事件的话,原则上document代表不是弹出页面。所以keydown事件不会在弹出界面响应的)
  3. 不管手动输入、还是扫码枪输入支付码都可以。只需要下方绑定下鼠标的悬浮事件就ok了
//当前页面添加绑定事件
$(document).bind("mouseover",function(e){
	//当前页面中获取焦点所在的元素
	if ($(":focus").length <= 0) {
		//防止初始化时元素未渲染号所以使用延迟设置焦点事件
		var focusDom = $('#submit_PAY_CODE');
		setTimeout(function(){
            $(focusDom).focus();
        },50);
	}
});

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值