<el-select> 两个选择框联动
时间: 2023-08-04 08:24:50 浏览: 92
你可以通过监听第一个选择框的变化事件,然后根据选中的值动态更新第二个选择框的选项。具体实现步骤如下:
1. 在第一个选择框中设置一个 `v-model` 变量,用来存储选中的值。
2. 声明一个数组,用来存储第二个选择框的选项。
3. 监听第一个选择框的变化事件,在事件处理函数中根据选中的值动态更新第二个选择框的选项。
4. 在第二个选择框中设置一个 `v-model` 变量,用来存储选中的值。
下面是一个示例代码:
```html
<template>
<div>
<el-select v-model="selectedValue1" @change="handleChange">
<el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<el-select v-model="selectedValue2">
<el-option v-for="item in options2" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</div>
</template>
<script>
export default {
data() {
return {
selectedValue1: '',
selectedValue2: '',
options1: [
{ value: 'option1', label: '选项1' },
{ value: 'option2', label: '选项2' },
{ value: 'option3', label: '选项3' }
],
options2: []
}
},
methods: {
handleChange() {
if (this.selectedValue1 === 'option1') {
this.options2 = [
{ value: 'suboption1', label: '子选项1' },
{ value: 'suboption2', label: '子选项2' }
]
} else if (this.selectedValue1 === 'option2') {
this.options2 = [
{ value: 'suboption3', label: '子选项3' },
{ value: 'suboption4', label: '子选项4' }
]
} else {
this.options2 = []
}
this.selectedValue2 = ''
}
}
}
</script>
```
在上面的代码中,我们通过 `handleChange` 方法来处理第一个选择框的变化事件。根据选中的值,我们动态更新了第二个选择框的选项。同时,我们也将第二个选择框的选中值重置为空。这样可以避免在选项更新后,第二个选择框的选中值不符合要求的问题。
阅读全文