ElementUI自定义表单验证提交时valid无法获取到true
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) { // 无法获取到true
alert('submit!');
} else {
console.log('error submit!!');
return false;
}
});
},
官网描述: 自定义校验 callback 必须被调用
自定义验证的时候如果不加上callback()会导致没有函数返回,无论是在if上还是其他判断条件都必须完整的有callback()
bad example:
var checkPWd = (rule, value, callback) => {
var reg = /^[a-zA-Z0-9_-]+$/
if (!reg.test(value)) {
callback(new Error('XXXXXXXXXXXXXXXXXXXXX'))
}
}; // valid无法获取到true,false能正常获取
good example:
var checkPWd = (rule, value, callback) => {
var reg = /^[a-zA-Z0-9_-]+$/
if (!reg.test(value)) {
callback(new Error('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'))
} else {
callback() // 必须要callback , 否则 提交验证不执行
}
}; // 可以正常使用验证并通过