今天做微信,支付宝支付的等待用户扫码时候
防止人为输入
直接上代码
思路
用输入字符的时间差判断是不是扫码堆输入的字符还是人为的输入
//等待用户扫二维码 ,扫描后直接提交 vue
var timearr = [0,0];
$("#qrCodeId").on("input",function(e){
var v= e.delegateTarget.value;
//利用输入字符的时间差判断是不是扫描码输入的字符还是人为的输入 开始===
if(v.length%2 != 0){
timearr[0]=new Date().getTime();
}else{
timearr[1]=new Date().getTime();
}
if(v.length > 1 && Math.abs(timearr[1] - timearr[0]) > 40){
console.log("==清空==");
$("#qrCodeId").val('');
}
//利用输入字符的时间差判断是不是扫描堆输入的字符还是人为的输入 结束===
if("" != v && v.length == 18 && isNumber(v)){
console.log(v + "<==>" + v.length);
$('#order_btn').click();//当扫码后 二次提交
}
});
function isNumber(val){ var regPos = /^\d{18}$/; // if(regPos.test(val)){ return true; }else{ return false; } }