记录自己遇到的表单部分验证问题

348 阅读1分钟

记录自己遇到的问题

# 问题:利用elementui的组件form做部分表单验证xxx.validateField,如果部分验证只有一项内容则没有关系,但是多项内容会出现验证失败的现象,这是因为validateField是对需要验证的数组内的每一项逐个进行验证,若是在validateField的第二个参数直接写验证成功所做的处理,就会出现错误。 ##### 解决方式为:利用Promise.all()方法对validateField方法处理,把他们包裹在promise事件里面,当数组里面的表单规则全部被验证成功后再执行想要做的事情

 Promise.all(
          ['officeResults','writtenAdvice'].map((i)=>{
            return new Promise((resolve,reject)=>{
              this.$refs.purchaseForm.validateField(i,(errorMessage)=>{
                resolve(errorMessage)
              })
            })
          })
        ).then((errorMessage)=>{
          let valid=errorMessage.every((errorMessage)=>{
              return errorMessage==''||errorMessage==undefined
        
          })
          if(valid){
              //在这写你想要做的处理
          }         
                })