问题描述
按照官方例子调用validate方法:

this.$refs.registerForm.validate((valid) => {
console.log(valid)
if (valid) {
// this.registerNext = true
} else {
return false
}
})
发现不管表单中内容是否检验通过,valid参数的值始终为true。
原因及解决方法
通过查阅文档发现出现这个问题的原因是对于同一个校验规则rules,我同时在多个同名表单(即ref名相同)中使用了该规则。虽然rules能够对每个el-form里的表单进行校验,但返回回来的valid只代表最后一个el-form的状态。
因此解决方案即为将用了同一rules的多个表单的ref属性命名为不同的即可,在调用validate校验时,只会校验该表单下的属性是否符合相应的规则。
本文探讨了在Vue项目中使用同一验证规则时遇到的问题:无论表单内容是否通过验证,valid参数始终为true。文中详细解释了这一现象的原因,并提供了解决方案。
1万+





