elementui检验
ElementUI 表单验证方法
ElementUI 提供了强大的表单验证功能,主要通过 el-form 和 el-form-item 组件结合 rules 属性实现。以下是常见的验证方法:
基础表单验证
在 el-form 上绑定 :rules 属性,并在 el-form-item 上设置 prop 属性与规则对应:
<el-form :model="form" :rules="rules" ref="formRef">
<el-form-item label="用户名" prop="username">
<el-input v-model="form.username"></el-input>
</el-form-item>
</el-form>
验证规则配置
在数据中定义 rules 对象,支持多种验证类型:
rules: {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
],
email: [
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
]
}
自定义验证规则
通过 validator 函数实现复杂验证逻辑:
const validatePass = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入密码'));
} else {
if (this.form.checkPass !== '') {
this.$refs.form.validateField('checkPass');
}
callback();
}
};
表单提交验证

在提交时调用表单实例的 validate 方法:
methods: {
submitForm() {
this.$refs.formRef.validate(valid => {
if (valid) {
// 验证通过
} else {
// 验证失败
return false;
}
});
}
}
动态表单验证
对于动态生成的表单项,需要在规则变化后调用 validateField 方法更新验证状态:
this.$refs.formRef.validateField('dynamicField');
常见验证规则示例
必填验证
{ required: true, message: '该项为必填项', trigger: 'blur' }
长度验证

{ min: 6, max: 18, message: '长度在6到18个字符', trigger: 'blur' }
正则验证
{ pattern: /^[a-z]+$/, message: '只能包含小写字母', trigger: 'blur' }
类型验证
{ type: 'email', message: '请输入正确的邮箱', trigger: 'blur' }
自定义验证函数
{
validator: (rule, value, callback) => {
if (!value.startsWith('prefix')) {
callback(new Error('必须以prefix开头'));
} else {
callback();
}
},
trigger: 'blur'
}
验证触发方式
ElementUI 支持多种触发验证的方式:
blur:失去焦点时触发change:值改变时触发- 数组形式可以同时指定多个触发方式
清除验证结果
使用 clearValidate 方法可以清除表单项的验证结果:
this.$refs.formRef.clearValidate(['username', 'password']);






