el-form 如何检验三个el-checkbox至少选一个
时间: 2023-12-01 07:36:20 浏览: 59
checkbox至少选中一项,否则提示
要实现至少选中一个`el-checkbox`的验证,可以使用`el-form`配合自定义验证规则来实现。
首先,在`el-form`组件上添加 `:rules` 属性,将验证规则绑定到一个自定义的验证方法上:
```html
<template>
<el-form :model="form" :rules="rules" ref="form">
<el-checkbox v-model="form.checkbox1">选项1</el-checkbox>
<el-checkbox v-model="form.checkbox2">选项2</el-checkbox>
<el-checkbox v-model="form.checkbox3">选项3</el-checkbox>
<el-button @click="validateForm">提交</el-button>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
checkbox1: false,
checkbox2: false,
checkbox3: false
},
rules: {
checkboxGroup: [
{ validator: this.validateCheckbox, trigger: 'change' }
]
}
}
},
methods: {
validateCheckbox(rule, value, callback) {
if (!value.checkbox1 && !value.checkbox2 && !value.checkbox3) {
callback(new Error('请至少选择一个选项'));
} else {
callback();
}
},
validateForm() {
this.$refs.form.validate(valid => {
if (valid) {
// 验证通过,执行提交操作
// ...
} else {
// 验证失败,显示错误提示
return false;
}
});
}
}
}
</script>
```
在上述示例中,我们定义了一个自定义的验证方法 `validateCheckbox`,该方法检查三个 `el-checkbox` 是否有至少一个被选中。如果都没有被选中,则调用 `callback` 函数并传递一个错误对象,显示错误提示信息;否则,调用 `callback` 函数不传递任何参数,表示验证通过。
然后,在 `rules` 对象中,我们将自定义的验证方法 `validateCheckbox` 应用到 `checkboxGroup` 规则上。
最后,我们在提交按钮的点击事件中调用 `validateForm` 方法,该方法使用 `$refs` 引用获取到 `el-form` 的实例,并调用 `validate` 方法进行表单验证,如果验证通过则执行提交操作,否则显示错误提示。
这样,当三个 `el-checkbox` 都未被选中时,会显示错误提示信息,表示至少要选择一个选项。
阅读全文