js手动输入和扫描输入的区分

js中判断input输入框是手动输入的,还是扫描输入的,

最好的方法是判断设备来源,但是我没有找到这个方法,自己写了一个,废话不多说上代码

(我的代码中不知道为什么用不了change事件,所以用的input,
然后扫描会自动触发一个回车,判断回车事件如果大于2秒,就为手动输入的.
还有一个问题,如果是粘贴上去的肯定会小于2秒,所以再加上οnpaste="return false",可以加到input上,如果整个表单都不允许粘贴,也可以放到<body>里面)


//记录手动输入开始时间
var startTime;
//记录手动输入开始次数,第二次不触发
var count = 0;
//条码扫描不允许手动输入
$("#inputBatchCod").on('input',function(){
	count++;
	if(count == 1){
	startTime = new Date().getTime();
	}
});
$('#inputBatchCode').keydown(function(e){
	if(e.keyCode==13){
		//记录手动输入结束时间
		var endTime = new Date().getTime();
		if(endTime - startTime > 2000){
			alert("不允许手动输入!");
			$("#inputBatchCode").val("");
			$("#inputBatchCode").focus();
			count = 0;
			return;
		}
				
	}
});




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值