JS获取扫码设备扫描到的值

一、JS获取扫码设备扫描二维码或者条形码得到的值

扫码设备在扫码二维码或者条形码时,相当于将获取到的值连续并快速的按下对应的键盘按键。
看自己想要怎么获取扫码后的值,一个是实时监听,一个是通过主动触发

1、通过jQuery监听keydown事件

var scanList = "";
var scanTimer = "";

// 只获取数字,每个数字有两个对应按键值是因为有数字小键盘,数字小键盘和字母键盘上的数字对应的按键值是不一样的
var keyData = { 48:"0",96:"0",49:"1",97:"1",50:"2",98:"2",51:"3",99:"3",52:"4",100:"4",53:"5",101:"5",54:"6",102:"6",55:"7",103:"7",56:"8",104:"8",57:"9",105:"9"};

// 监听keydown事件
$(document).keydown(function (event) {
	var key = event.keyCode;
	// 屏蔽其他按键,只要keyData中有的按键
	if (!keyData.hasOwnProperty(key)) {
		return;
	}
	// 如果有定时器就不创建新的定时器
	if (!scanTimer) {
		scanList = "";
		// 启动定时器
		scanTimer = window.setInterval("checkScan()",500);
	}
	scanList += keyData[key];
});

// 扫码设备扫码后会在很短的时间内将内容输出,这里只接收0.5秒内输入的内容,防止人为因素
function checkScan(){// 0.5秒结束
	// 可以加自己对scanList的判断逻辑,防止是人为按键触发
	if (scanList.length != 22) {
		scanList = "";
	}
	// 清除定时器
	clearTimeout(scanTimer);
	scanTimer = null;
	if(scanList != ""){
		// 自己对扫码得到内容的处理
		alert(codeScan);
		// 处理完成后取消键盘监听事件
		$(document).unbind();
}

2、通过把焦点放在文本框后在扫码获取
因为扫码设备扫码后获取到值后相当于依次并快速的按下键盘,所以可以通过点击扫码按钮将焦点设置在文本框中,然后扫码,此时获取到的值会打在文本框中。

// 可以在点击扫码后启动定时器,获取CODESCANED的值
var active = document.activeElement;// 获取当前焦点
var scan = document.getElementById("CODESCANED");
if(active.id != 'CODESCANED'){
	// CODESCANED是文本框ID
	scan.focus();// 设置焦点
}

scan.onblur = function(){// 当失去焦点后重新设置焦点
	if (判断是否正在扫码,可以通过变量控制或者其他方法) {
		// 重新获取焦点
		scan.focus();
	}
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值