判断数字并不允许输入

//非数字处理
/**
 * type:类型  2为正整数  其他的为数字
 * isalert:是否弹出错误信息
 * callback: 回调函数 可处理错后的错误信息显示
 * success: 判断成功后回调
 * tle:显示的错误信息
 * ischeckNull:是否判断为空错误
 * 使用:  例如:οninput="checkNaN(event)"    οninput="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:是否判断为空错误
 * 使用:  例如:οninput="checkNaN(event)"    οninput="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" οninput="checkNaN(event)" type="text"/>

转载于:https://www.cnblogs.com/webqiand/articles/11250582.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值