在表单校验中,trigger 属性用于指定何时触发校验规则。常见的触发方式包括 "change" 和 "blur". 它们的区别如下:
trigger: "change":
rules: {
username: [
{ required: true, message: '用户名不能为空', trigger: 'change' }
]
}
trigger: "blur":
rules: {
email: [
{ type: 'email', message: '请输入有效的邮箱地址', trigger: 'blur' }
]
}
change 即时。以下是一个包含两种触发方式的示例:
<template>
<el-form :model="formData" :rules="rules" ref="form">
<el-form-item label="用户名" prop="username">
<el-input v-model="formData.username">el-input>
el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="formData.email">el-input>
el-form-item>
<el-button type="primary" @click="submitForm">提交el-button>
el-form>
template>
<script>
export default {
data() {
return {
formData: {
username: '',
email: ''
},
rules: {
username: [
{ required: true, message: '用户名不能为空', trigger: 'change' }
],
email: [
{ type: 'email', message: '请输入有效的邮箱地址', trigger: 'blur' }
]
}
};
},
methods: {
submitForm() {
this.$refs.form.validate((valid) => {
if (valid) {
console.log('表单提交成功');
} else {
console.log('表单校验失败');
return false;
}
});
}
}
};
script>
在这个示例中,username 字段使用 trigger: 'change' 进行校验,即每次输入变化时都会触发校验;email 字段使用 trigger: 'blur' 进行校验,即在输入框失去焦点时才触发校验。