根据elementui文档,查询到validateField方法,可以给表单的某个字段添加校验
对表单单个字段进行校验
data: {
rules: {
email: {
required: true,
message: '请输入邮箱',
trigger: ['change', 'blur']
methods: {
validateEmail(formName) {
this.$refs[formName].validateField('email', emailError => {
// 2种情况:emailError ='请输入邮箱'或者emailError =''(所以返回值为空时,验证通过。返回值非空时,验证失败)
if (!emailError) {
alert('邮箱验证通过!');
} else {
console.log('邮箱验证失败');
return false;
}
});
},
如果只是对表单的某个字段进行重新校验,可简化为:
this.$refs.dialogFormRefName.validateField('name', ErrorMsg => {})
对多个字段进行校验
data: {
rules: {
name: {
required: true,
message: '请输入姓名',
trigger: ['change', 'blur']
},
email: {
required: true,
message: '请输入邮箱',
trigger: ['change', 'blur']
}
}
let count = 0
const updateArr = ['email', 'name']
let isAllowNext = false // 是否允许下一步
updateArr.forEach(item => {
this.$refs.dialogForm.validateField(item, errorMsg=> {
// 返回值为空时,验证通过;返回值非空时,验证失败
if (errorMsg) return
// 如果某个字段校验通过则计数+1
++count
})
})
// 如果当前表单必填项通过的数量与需要必填的数量相等,则进入下一步
count === updateArr.length ? isAllowNext = true : ''
if (isAllowNext) {
alert('必填字段均通过校验,允许进入下一步!')
}