VUE + ElementUI select框多选,选中“全部”选项后其他不可选
在Vue中使用ElementUI的Select组件实现多选时,可以通过v-model
绑定数组来实现多选功能。如果需要在选中“全选”选项后禁用其他选项,可以使用:disabled
属性,并结合计算属性来动态控制。
以下是一个简单的示例:
<template>
<el-select v-model="selectedOptions" multiple placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
:disabled="item.disabled">
</el-option>
</el-select>
</template>
<script>
export default {
data() {
return {
selectedOptions: [],
options: [
{ label: '全选', value: 'all', disabled: false },
{ label: '选项1', value: 'option1', disabled: false },
{ label: '选项2', value: 'option2', disabled: false },
// ...更多选项
],
};
},
watch: {
selectedOptions(newValue) {
if (newValue.includes('all')) {
// 如果已经选中了“全选”,禁用其他选项
this.options.forEach((item) => {
if (item.value !== 'all') {
item.disabled = true;
}
});
} else {
// 如果没有选中“全选”,启用其他选项
this.options.forEach((item) => {
item.disabled = false;
});
}
}
}
};
</script>
在这个示例中,selectedOptions
是绑定到el-select
的数组,用于保存选中的值。options
数组中的每个对象代表一个下拉选项,其中disabled
属性用于控制该选项是否可选。通过监听selectedOptions
数组的变化,当选中“全选”选项时,所有其他选项会被禁用。
评论已关闭