【使用elementUI实现温度输入框】

要求只能输入一位小数且不能为小数和数字外的其它格式
html:

<el-input v-model="infectiousFormData.animal"  @input ="infectiousFormData.animal=infectiousFormData.animal.replace(/[^0-9.]/g,'')"
           maxlength="4"  @keyup.native="infectiousFormData.animal=oninput(infectiousFormData.animal,1)"
           size="small"></el-input>

其中infeciousFormData和animal分别为温度对应字段可以更换;
主要用来校验的在@keyup.native和@input中进行编写
js:

oninput(num,limit){
    var str= num;
    var len1 = '';
    var len2 = '';
    var len3 = '';
    if(str.length>=1) {
        len1=str.substr(0,1);
    }
    if(str.length>=2) {
        len2 = str.substr(1, 1)
    }
    if(str.length>=3) {
        len3 = str.substr(2, 1);
    }
    console.log(len1)
    console.log(len2)
    console.log(len3)
    //如果第⼀位是0,第二位不是点,就用数字把点替换掉
    if(str.length>1&&len1==0&&len2!='.'){
        str=str.substr(1,1);
    }
    //第一位不能是.
    if(len1=='.'){
        str=""
    }
    //限制只能输入一个小数点
    if(str.indexOf(".")!=-1){
        var str_ = str.substr(str.indexOf(".")+1);
        if(str_.indexOf(".")!=-1){
            str=str.substr(0,str.indexOf(".")+str_.indexOf(".")+1);
        }
    }
    //正则替换
    str = str.replace(/[^\d^\.]+/g, '') // 保留数字和小数点
    if (limit / 1 === 1) {
        str = str.replace(/^\D*([0-9]\d*\.?\d{0,1})?.*$/,'$1') // 小数点后只能输一位
    }
    //如果第二位或者第三位都不为. 则清空输入框
    if(len3!=''&&len2!=''){
        if(len3!='.'&&len2!='.'){
          str='';
        }
    }
    return str;
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值