vue二次封装el-from表单中包含单选和复选按钮,单选按钮默认为选中状态,实现一个demo
时间: 2024-03-06 15:47:49 浏览: 92
按钮单选示例demo
好的,这里是一个简单的示例,二次封装了 `el-form` 组件,并在表单中添加了单选和复选按钮:
```vue
<template>
<my-form :form-data="formData" :form-rules="formRules" @submit="handleSubmit" @reset="handleReset">
<el-form-item label="性别" prop="gender">
<el-radio-group v-model="formData.gender">
<el-radio label="1">男</el-radio>
<el-radio label="2">女</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="爱好" prop="hobby">
<el-checkbox-group v-model="formData.hobby">
<el-checkbox label="1">篮球</el-checkbox>
<el-checkbox label="2">足球</el-checkbox>
<el-checkbox label="3">游泳</el-checkbox>
</el-checkbox-group>
</el-form-item>
</my-form>
</template>
<script>
import MyForm from '@/components/MyForm'
export default {
components: {
MyForm
},
data() {
return {
formData: {
gender: '1', // 默认选中男
hobby: []
},
formRules: {
gender: [{ required: true, message: '请选择性别', trigger: 'change' }],
hobby: [{ required: true, type: 'array', min: 1, message: '请选择至少一项爱好', trigger: 'change' }]
}
}
},
methods: {
handleSubmit(formData) {
// 表单提交处理逻辑
console.log(formData)
},
handleReset() {
// 表单重置处理逻辑
console.log('表单已重置')
}
}
}
</script>
```
在示例中,我们使用了 `el-radio-group` 和 `el-checkbox-group` 组件分别实现单选和复选按钮,使用 `v-model` 指令绑定表单数据。在默认情况下,`el-radio` 组件的 `label` 属性设置为选中状态的值(如示例中的男性选项),即可实现单选按钮的默认选中状态。
表单验证规则中,使用 `type: 'array'` 来验证复选框的选中项,`min: 1` 来验证至少选择一项。
`MyForm` 组件的代码与上一个示例的代码相同,这里不再赘述。
阅读全文