欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-14 20:33:25
...

扫码枪:外设输入设备。输入时触发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);
	}
});