判断数字并不允许输入
//非数字处理 /** * type:类型 2为正整数 其他的为数字 * isalert:是否弹出错误信息 * callback: 回调函数 可处理错后的错误信息显示 * success: 判断成功后回调 * tle:显示的错误信息 * ischeckNull:是否判断为空错误 * 使用: 例如:oninput="checkNaN(event)" oninput="checkNaN(event,{type:2})" */ function checkNaN(event,{type="1",isalert=false,tle="",ischeckNull=false,callback=()=>{},success=()=>{}}={}){ var e=window.event||event; //消除浏览器差异 const code = e.keyCode||e.which; //8 为backsppace键 var values=e.target.value; const alertText=tle==""?(type=="2"?"只能输入正数字":"只能输入数字"):tle; //提示的文字 if(isnull(e.target.value)==""){ ischeckNull?success():""; // e.target.value="" }else{ var reg=/^([1-9]\d*|[0]{1,1})$/ //isNaN() checkKey=type=="2"?!reg.exec(e.target.value):isNaN(e.target.value) if(code!=8 && checkKey){ e.target.value=(values.substring(0,(values.length-1))).replace(/[^\d.]/g,''); isalert?layer.msg(alertText,{icon:5}):""; callback(alertText); e.returnValue = false; }else{ success(); } } }
非es6
//非数字处理 /** * type:类型 2为正整数 其他的为数字 * isalert:是否弹出错误信息 * callback: 回调函数 可处理错后的错误信息显示 * success: 判断成功后回调 * tle:显示的错误信息 * ischeckNull:是否判断为空错误 * 使用: 例如:oninput="checkNaN(event)" oninput="checkNaN(event,{type:2})" */ function checkNaN(event,params){ var e=window.event||event; //消除浏览器差异 var code = e.keyCode||e.which; //8 为backsppace键 var values=e.target.value; var defaultParams = { type:"1", isalert:false, tle:"", ischeckNull:false, callback:function(){}, success:function(){}, } var settings = {}; jQuery.extend(settings,defaultParams,params); var type=settings.type; var isalert=settings.isalert; var tle=settings.tle; var ischeckNull=settings.ischeckNull; var callback=settings.callback; var success=settings.success var alertText=tle==""?(type=="2"?"只能输入正数字":"只能输入数字"):tle; //提示的文字 if(checkNull(e.target.value)==""){ ischeckNull?success():""; // e.target.value="" }else{ var reg=/^([1-9]\d*|[0]{1,1})$/ //isNaN() checkKey=type=="2"?!reg.exec(e.target.value):isNaN(e.target.value) if(code!=8 && checkKey){ e.target.value=(values.substring(0,(values.length-1))).replace(/[^\d.]/g,''); isalert?layer.msg(alertText,{icon:5}):""; callback(alertText); e.returnValue = false; }else{ success(); } } }
<input id="sheet_tr" oninput="checkNaN(event)" type="text"/>