element-ui表单校验不能同步结果的问题

多个表单遍历时,要依次获取各个结果,但是往往拿不到最终结果
let flag=true
this.$refs[‘form’].validate(valid=>{
flag=valid
})
console.log(valid)//永远是true

原因分析:

提示:这里填写问题的分析:
在这里插入图片描述
element文档里描述了,validate方法参数为一个回调函数,如果不传则返回一个promise


解决方案:

我们可以在validate的回调参数里放入想执行的方法,也可以不传入回调参数,利用try catch 和async await 让表单校验结果变为同步
let p=this.$refs[‘form’].validate()
try{
await p
}catch(error){
//此处的error为表单校验失败的字段

}
这样就可以同步进行了

你可能感兴趣的:(javascript,前端,vue.js,elementui)