vue 生成包含单选框多i选框的列表,单选框和多选框不可同时被选择,多选时清空单选选择状态,单选时清空多选选择状态,绑定id
时间: 2024-06-11 10:06:10 浏览: 74
vue实现的树形结构加多选框示例
可以使用Vue.js提供的v-model指令来实现单选框和多选框的选择状态绑定。同时,监听选择状态的变化,根据需要清空其他选项的选择状态即可。
以下是一个示例代码:
```
<template>
<div>
<ul>
<li v-for="item in items" :key="item.id">
<input type="radio" :id="'radio-' + item.id" :value="item.id" v-model="selectedItem" @change="handleRadioChange(item.id)">
<label :for="'radio-' + item.id">{{ item.name }}</label>
<br>
<input type="checkbox" :id="'checkbox-' + item.id" :value="item.id" v-model="selectedItems" @change="handleCheckboxChange(item.id)">
<label :for="'checkbox-' + item.id">{{ item.name }}</label>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
items: [
{ id: 1, name: 'Item 1' },
{ id: 2, name: 'Item 2' },
{ id: 3, name: 'Item 3' },
{ id: 4, name: 'Item 4' },
],
selectedItem: null,
selectedItems: [],
};
},
methods: {
handleRadioChange(id) {
// 单选框被选择时,清空多选框选择状态
this.selectedItems = [];
// 绑定id
console.log('Selected item:', id);
},
handleCheckboxChange(id) {
// 多选框被选择时,清空单选框选择状态
this.selectedItem = null;
// 绑定id
console.log('Selected items:', this.selectedItems);
},
},
};
</script>
```
在上面的代码中,我们先定义了一个items数组,其中每个元素都有一个id和name属性。然后使用v-for指令遍历items数组,生成一个包含单选框和多选框的列表。单选框和多选框的选择状态分别绑定到selectedItem和selectedItems属性上。
在单选框和多选框的change事件处理函数中,我们根据需要清空其他选项的选择状态,并输出绑定的id值。
注意,为了保证单选框和多选框的选择状态互斥,我们需要在单选框被选择时清空多选框选择状态,在多选框被选择时清空单选框选择状态。这样可以保证每次只有一个选项被选择。
阅读全文