el-form多层表单校验
时间: 2023-11-19 11:50:54 浏览: 169
对于el-form多层表单校验,可以使用自定义校验规则来实现。具体步骤如下:
1. 在el-form中设置ref属性,方便在代码中获取表单数据和进行校验。
2. 在表单项中设置prop属性,用于在校验规则中引用该项数据。
3. 在el-form中设置rules属性,为每个表单项设置校验规则。
4. 在自定义校验规则中,通过this.$refs.form.validate()方法来触发表单校验。
以下是一个示例代码:
```
<template>
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="年龄" prop="age">
<el-input v-model.number="form.age"></el-input>
</el-form-item>
<el-form-item label="联系方式">
<el-form ref="contactForm" :model="form.contact" :rules="contactRules">
<el-form-item label="电话" prop="phone">
<el-input v-model="form.contact.phone"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.contact.email"></el-input>
</el-form-item>
</el-form>
</el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
name: '',
age: '',
contact: {
phone: '',
email: ''
}
},
rules: {
name: [
{ required: true, message: '请输入姓名', trigger: 'blur' }
],
age: [
{ required: true, message: '请输入年龄', trigger: 'blur' },
{ type: 'number', message: '年龄必须为数字值', trigger: 'blur' }
]
},
contactRules: {
phone: [
{ required: true, message: '请输入电话号码', trigger: 'blur' }
],
email: [
{ required: true, message: '请输入邮箱地址', trigger: 'blur' },
{ type: 'email', message: '邮箱地址格式不正确', trigger: ['blur', 'change'] }
]
}
}
},
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
// 表单校验通过,提交表单数据
} else {
// 表单校验不通过,提示错误信息
}
})
}
}
}
</script>
<style>
/* 样式省略 */
</style>
```
阅读全文