el-select 同时获取选中的 label 和 value
el-select 同时获取选中的 label 和 value
·
在使用elementUI开发过程中,其中el-select是使用频率比较高的组件之一,但是在有些场景中,需要同时获取到el-select选中的 label 和 value,label一般是name之类的用于展示、value一般是ID之类的用于数据处理。但是根据文档来看,el-select是不支持直接获取 的,那就需要自己想办法获取了,下面三种方法都可以:
一、通过组件实例直接获取(ref):
<template>
<el-select v-model="value" placeholder="请选择" ref="myValue" @@change="ElSelectChange">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</template>
// Element中的使用方式
const { label, value } = this.$refs.myValue.selected;
或者
let label = this.$refs.myValue.selected.label;
let value= this.$refs.myValue.selected.value;
// ElementPlus中使用
const myValue = ref();
const { currentLabel: label, value } = myValue.value.selected;
二、通过"find"(返回符合传入测试(函数)条件的数组元素) 查找到选中的label:
<template>
<el-select v-model="value" placeholder="请选择" ref="myValue" @@change="ElSelectChange">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</template>
<script>
ElSelectChange(val) {
var data = this.options.find(item => item.value == val);
if(data){
var label=data.label;
}
}
</script>
三、通过拼接label和value 然后拆分获取:
<template>
<el-select v-model="value" placeholder="请选择" ref="myValue" @@change="ElSelectChange">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="`${item.value},${item.label}`">
</el-option>
</el-select>
</template>
<script>
ElSelectChange(val) {
const [value, label] = val.split(",");
}
</script>
注:change改变事件的双"@@"这是MVC中的用法,Vue中用的是单个"@"。
更多推荐


所有评论(0)