vue怎么实现两个相同的下拉框选项互斥,且可以清空下拉框
时间: 2024-05-04 14:21:22 浏览: 86
Vue2.0 实现单选互斥的方法
你可以通过监听下拉框的选择事件,在选择某个选项时,将其它下拉框中相同的选项禁用或隐藏。同时,你可以在下拉框中添加一个“清空”选项,当选择该选项时,将所有下拉框中的选项重置为可选择状态。
以下是一个简单的实现示例:
```html
<template>
<div>
<div>
<label>下拉框1:</label>
<select @change="handleChange($event, 1)">
<option value=""></option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
</div>
<div>
<label>下拉框2:</label>
<select @change="handleChange($event, 2)">
<option value=""></option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
</div>
<button @click="reset">清空</button>
</div>
</template>
<script>
export default {
data() {
return {
selected: {
1: "",
2: "",
},
options: {
1: ["A", "B", "C"],
2: ["A", "B", "C"],
},
};
},
methods: {
handleChange(event, index) {
const value = event.target.value;
this.selected[index] = value;
for (let i = 1; i <= 2; i++) {
if (i !== index) {
const optionIndex = this.options[i].indexOf(value);
if (optionIndex > -1) {
this.options[i].splice(optionIndex, 1);
}
}
}
},
reset() {
this.selected = {
1: "",
2: "",
};
this.options = {
1: ["A", "B", "C"],
2: ["A", "B", "C"],
};
},
},
};
</script>
```
在上面的示例中,我们监听了每个下拉框的选择事件,并在事件处理程序中更新了选中状态和可选项。当一个选项被选择时,我们会循环遍历其它下拉框中的选项,将相同的选项禁用掉,使其不再可选择。
同时,我们添加了一个“清空”按钮,当点击该按钮时,重置了所有下拉框的选中状态和可选项。
注意,以上代码只是一个简单的示例,你需要根据实际需求进行调整。
阅读全文