elementui validator
使用 ElementUI 表单验证
ElementUI 提供了强大的表单验证功能,通过 el-form 组件和 rules 属性实现。以下是一个基本示例:
<template>
<el-form :model="form" :rules="rules" ref="form">
<el-form-item label="用户名" prop="username">
<el-input v-model="form.username"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="form.password" type="password"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
username: '',
password: ''
},
rules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' },
{ min: 6, max: 16, message: '长度在 6 到 16 个字符', trigger: 'blur' }
]
}
}
},
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
alert('验证通过!')
} else {
console.log('验证失败')
return false
}
})
}
}
}
</script>
自定义验证规则
ElementUI 允许自定义验证规则,通过 validator 函数实现:
rules: {
username: [
{
validator: (rule, value, callback) => {
if (!value) {
return callback(new Error('用户名不能为空'))
}
setTimeout(() => {
if (!/^[a-zA-Z0-9]+$/.test(value)) {
callback(new Error('用户名只能包含字母和数字'))
} else {
callback()
}
}, 1000)
},
trigger: 'blur'
}
]
}
动态表单验证
对于动态生成的表单字段,可以通过动态设置 rules 实现验证:

methods: {
addField() {
this.rules.newField = [
{ required: true, message: '请输入内容', trigger: 'blur' }
]
this.$nextTick(() => {
this.$refs.form.validateField('newField')
})
}
}
清除验证
可以通过调用表单实例的方法清除验证状态:
methods: {
resetForm() {
this.$refs.form.resetFields()
}
}
异步验证
ElementUI 支持异步验证,常用于检查用户名是否已存在等场景:

rules: {
username: [
{
validator: async (rule, value, callback) => {
if (!value) {
return callback(new Error('用户名不能为空'))
}
const res = await checkUsernameExists(value)
if (res.exists) {
callback(new Error('用户名已存在'))
} else {
callback()
}
},
trigger: 'blur'
}
]
}
表单验证事件
ElementUI 提供了多个表单验证相关事件:
<el-form
:model="form"
:rules="rules"
@validate="handleValidate"
@submit.native.prevent>
</el-form>
验证规则参数说明
常用的验证规则参数包括:
- required: 是否必填
- message: 验证失败时的提示信息
- trigger: 触发验证的事件(blur/change)
- min/max: 最小/最大长度
- pattern: 正则表达式验证
- validator: 自定义验证函数
表单验证方法
表单实例提供的主要验证方法:
- validate: 对整个表单进行验证
- validateField: 对指定字段进行验证
- resetFields: 重置表单并清除验证状态
- clearValidate: 清除指定字段的验证状态






