elementui 同时校验多个form表单

山楂片
  • 358
 this.$refs[form1].validate((valid) => {
  if(valid){}
}
 this.$refs[form2].validate((valid) => {
  if(valid){}
}

现在的需求是我想要在保存某个单证页面时,让页面中的两个form都通过校验才能保存,应该怎么写呢

回复
阅读 11.8k
3 个回答

题主可以试试下面的方法

var p1=new Promise(function(resolve, reject) {
        
            this.$refs[form1].validate((valid) => {
                if(valid){
                    resolve();
                }
            })
        });
        
        var p2=new Promise(function(resolve, reject) {
             this.$refs[form2].validate((valid) => {
              if(valid){
                resolve();
              }
            })
        });
        
        
        
        Promise.all([p2,p1]).then(function(){
            alert("验证通过了");
        });
this.$refs[a].validate((valid) => {
                console.log(valid)
                if (valid) {
                  this.titleFormValid = true
                }
              })
               this.$refs[b].validate((valid) => {
                    if(valid){
                       this.customFormValid = true
                    } 
                })
               if (this.titleFormValid && this.customFormValid) {
                 alert("保存成功")
               }
              }

我是这样写的,

把this保存起来,先验证第一个,在第一个验证通过得里面,验证第二个,可以试一下可不可以

宣传栏