实现ElementUI中两个-select在v-for下选择联动效果
时间: 2024-03-26 14:38:54 浏览: 71
可以通过绑定 v-model 和 @change 事件来实现两个-select在v-for下选择联动效果。
首先,在 data 中定义两个变量用于存储两个-select的选择结果,例如:
```javascript
data() {
return {
selectedOption1: '',
selectedOption2: '',
optionList1: [
{ value: '1', label: '选项1' },
{ value: '2', label: '选项2' },
{ value: '3', label: '选项3' }
],
optionList2: [
{ value: 'A', label: '选项A' },
{ value: 'B', label: '选项B' },
{ value: 'C', label: '选项C' }
]
}
},
```
然后,在模板中使用 v-for 渲染两个-select,并绑定 v-model 和 @change 事件:
```html
<el-select v-model="selectedOption1" @change="option1Change">
<el-option
v-for="item in optionList1"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model="selectedOption2">
<el-option
v-for="item in optionList2"
:key="item.value"
:label="item.label"
:value="item.value"
:disabled="item.value !== selectedOption1">
</el-option>
</el-select>
```
其中,第二个-select 的 :disabled 属性绑定了一个表达式,表示只有当第一个-select 的值与当前选项的值相同时,才能选择当前选项。
最后,在 methods 中定义 option1Change 方法,用于在第一个-select 的值发生改变时更新第二个-select 的可选项:
```javascript
methods: {
option1Change() {
this.selectedOption2 = '';
}
}
```
这样,当第一个-select 的值发生改变时,第二个-select 的可选项就会发生相应的变化。
阅读全文