判断数字并不允许输入

//非数字处理
/**
 * 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"/>
posted @ 2017-09-02 17:15  webnote  阅读(94)  评论(0编辑  收藏  举报