Vue-Element之vue-element 输入框验证

1.控制输入位数

限制输入为10位,这种方式可以使输入框中输入10位后不能输入后续内容
因为number输入框自动将最后一位小数点忽略不计,因此“.”,"2.","3.3."这三种情况均为正确的输入

<el-form-item label="渠道:" prop="channelName">
  <el-input v-model="formData.channelName" :maxlength="10" placeholder="请输入渠道名称"></el-input>
</el-form-item>
rules:{
       channelName:[
         {required:true,message:'渠道名称不能为空',trigger:'change'},
       ],
  }
2.控制小数输入位数

input 设置类型为number,step控制步长,正则表达式匹配输入的格式必须为xxx.xxx.
注意,此种方法无法区分不输入的情况,故将提示信息合并为一个。
统一触发方式为change

<el-form-item label="短信单价:" prop="price" class="form-price">
    <el-input type="number" step="0.001" v-model="formData.price" placeholder="请输入"></el-input>
</el-form-item>
//js
    let checkPrice = (rule,value,callback)=>{
        if(value){
          let rgx = /^\d+(\.\d{1,3})?$/;
          if(value.match(rgx)==null){
            return callback(new Error('请检查输入格式,不能为空,且最多三位小数'))
          }else{
            callback();
          }
        }
      };
      rules:{
         price:[
           {required:true,message:'请检查输入格式,不能为空,且最多三位小数',trigger:'change'},
           {validator:checkPrice,trigger:'change'}
         ]
      },

3.验证时间控件选择的时间是否在某个范围

   let checkSendTime =  (rule, value, callback) => {
        let hour = value ? value.getHours() :0;
        if (value !== "") {
          if (hour < 8 || hour > 21) {
            return callback(new Error('请选择8:00~22:00之间发送'));
          } else {
            callback();
          }
        }
      };
      sendTime:[
            {type:'date',required: true, message: '发送时间不能为空', trigger: 'blur'},
            {validator:checkSendTime,trigger:'blur'}
          ]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容