在项目中用到了表单的validate校验,但后来发现this.$refs[‘’].validate(() => {})怎么都不生效,原来是我的表单用了自定义校验,也正因为如此而出了问题

问题如下,后几个条件语句并没有返回callback回调函数导致校验不生效,需要在每一个条件语句最后加上callback回调。确保程序正常执行。
var checkAge = (rule, value, callback) => {
          if (!value) {
            return callback(new Error('不能为空'));
          }  
          var re = /^\d+(?=\.{0,1}\d+$|$)/ ;
          if (!re.test(value)) {
            return callback(new Error('请输入数字值'));
          }else if(value < 0){
             value = 0
             this.formData.buildProcess=0 
          }else if(value >100){
              value = 100
              this.formData.buildProcess=100
          }else{
            value=(value*10/10).toFixed(1)
            this.formData.buildProcess=value
          }
        };
正确代码如下:
var checkAge = (rule, value, callback) => {
          if (!value) {
            return callback(new Error('不能为空'));
          }  
          var re = /^\d+(?=\.{0,1}\d+$|$)/ ;
          if (!re.test(value)) {
            return callback(new Error('请输入数字值'));
          }else if(value < 0){
             value = 0
             this.formData.buildProcess=0 
             return callback()
          }else if(value >100){
              value = 100
              this.formData.buildProcess=100
              return callback()
          }else{
            value=(value*10/10).toFixed(1)
            this.formData.buildProcess=value
            return callback()
          }
        };
Logo

前往低代码交流专区

更多推荐