vue限制文本框数字小数点位数,限制为整数

2022-09-09T11:37:00

最近在给网站的APP完善一些付费功能,不过涉及到钱的地方一直都比较头痛,因为我的API限制了积分为整数结算,所以需要强制用户的输入为整数来保证用户体验。研究了半天之后写出了以下代码:

假设字段为day

html部分:

<input placeholder="输入购买天数" type="number" name="input" v-model="day" @input="day = limit(day,0)" />

js部分:

isRealNum(val){
  if(val === "" || val ==null){
        return false;
  }
   if(!isNaN(val)){    
    return true;
  }

 else{
    return false;
  }
},
limit(value,num){
  var that = this;
  if(that.isRealNum(value)){
    var newNum = value.toString();
    if(newNum.indexOf(".")!=-1){
      var arrbuy = newNum.split(".");
      var val1 = arrbuy[0];
      var val2 = arrbuy[1];
      if(val2.length > num){
        val2 = val2.slice(0, num);
      }
      newNum = Number(val1)+"."+val2;
      value = newNum;
    }
  }else{
    value = value.substr(0, value.length - 1);
    if(that.isRealNum(value)){
      value=value;
    }else{
      value="";
    }

  }
  return value;
},

如果要指定小数点位数,比如三位小数,写法如下(修改第二个参数即可):

<input placeholder="输入购买天数" type="number" name="input" v-model="day" @input="day = limit(day,3)" />

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »