vue之elementUi的el-select同時(shí)獲取value和label的三種方式
一. 需求
如下圖的下拉選項(xiàng)框,點(diǎn)擊查看需要同時(shí)獲取到選中選項(xiàng)的label值以及value值
以下是vue的渲染,在此不做過(guò)多介紹
<template> <div class="root"> <el-select ref="optionRef" v-model="value" placeholder="請(qǐng)選擇" style="width: 250px" > <el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.value" > </el-option> </el-select> <el-button style="margin-left: 20px" @click="showoptions" type="primary" >查看</el-button > </div> </template>
el-select綁定一個(gè)value值,el-option需要一個(gè)數(shù)組,以下是模擬數(shù)據(jù)
data() { return { value: "", options: [ { id: 0, label: "蘋果", value: "apple" }, { id: 1, label: "香蕉", value: "banana" }, { id: 2, label: "橙子", value: "orange" }, ], }; },
二. 方法
1. 通過(guò)ref的形式(推薦)
在進(jìn)行el-select渲染時(shí),給el-select添加一個(gè)ref,用于獲取值
然后就可以在點(diǎn)擊事件或者提交表單時(shí)獲取到選中的值了
methods: { showoptions() { console.log( this.$refs.optionRef.selected.value, this.$refs.optionRef.selected.label ); }, },
想要回顯的話直接給定el-select綁定的value為某個(gè)值即可,如想要回顯蘋果,就賦值為apple
該方法完整代碼如下:
<template> <div class="root"> <el-select ref="optionRef" v-model="value" placeholder="請(qǐng)選擇" style="width: 250px" > <el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.value" > </el-option> </el-select> <el-button style="margin-left: 20px" @click="showoptions" type="primary" >查看</el-button > </div> </template> <script> export default { data() { return { value: "", options: [ { id: 0, label: "蘋果", value: "apple" }, { id: 1, label: "香蕉", value: "banana" }, { id: 2, label: "橙子", value: "orange" }, ], }; }, methods: { showoptions() { console.log( this.$refs.optionRef.selected.value, this.$refs.optionRef.selected.label ); }, }, }; </script>
2. 通過(guò)字符串拼接的形式(推薦)
這個(gè)方法相對(duì)于第一種方法而已,優(yōu)點(diǎn)在于不止于同時(shí)獲取label和value,可以獲取多個(gè),如再加一個(gè)id值什么的,這里演示還是以獲取label和value為例,如想要獲取其他,按照如下方式即可
我們?cè)趀l-option渲染時(shí),所設(shè)置的value屬性值可以設(shè)置成label+value的形式,如下圖
那么我們獲取值時(shí),直接獲取el-select綁定的value即可,
獲取后的值形式如下圖,那么+號(hào)前面的就是想要的value值,后面的就是label值了,對(duì)返回的數(shù)據(jù)用split('+')進(jìn)行切割,返回的數(shù)組索引0就是value值,數(shù)組索引1就是label值
這種方法在回顯的時(shí)候稍微有點(diǎn)麻煩,因?yàn)橐鸦仫@的值也弄成value+label的形式渲染到el-select所綁定的value上,比如要回顯香蕉,就將value設(shè)置為’banana+香蕉‘
以下是第二種方法的完整代碼
<template> <div class="root"> <el-select ref="optionRef" v-model="value" placeholder="請(qǐng)選擇" style="width: 250px" > <el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.value + '+' + item.label" > </el-option> </el-select> <el-button style="margin-left: 20px" @click="showoptions" type="primary" >查看</el-button > </div> </template> <script> export default { data() { return { value: "banana+香蕉", options: [ { id: 0, label: "蘋果", value: "apple" }, { id: 1, label: "香蕉", value: "banana" }, { id: 2, label: "橙子", value: "orange" }, ], }; }, methods: { showoptions() { console.log(this.value); console.log("value=====", this.value.split("+")[0]); console.log("label=====", this.value.split("+")[1]); }, }, }; </script>
3. 通過(guò)遍歷的形式(不推薦)
這種方法就不太友好,就是通過(guò)el-select綁定的value對(duì)el-option數(shù)組進(jìn)行遍歷查找
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue3?element?plus?table?selection展示數(shù)據(jù),默認(rèn)選中功能方式
- Vue?elementui如何實(shí)現(xiàn)表格selection的默認(rèn)勾選
- vue-treeselect(適配Vue3.2)及Element-plus的TreeSelect組件使用
- vue elementui select標(biāo)簽監(jiān)聽(tīng)change事件失效問(wèn)題
- vue2結(jié)合element-ui實(shí)現(xiàn)TreeSelect樹(shù)選擇功能
- Vue中使用 ElementUi 的 el-select 實(shí)現(xiàn)全選功能(思路詳解)
- Vue Element如何獲取select選擇框選擇的value和label
相關(guān)文章
vue如何根據(jù)不同的環(huán)境使用不同的接口地址
這篇文章主要介紹了vue如何根據(jù)不同的環(huán)境使用不同的接口地址問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04vue中如何使用echarts和echarts-gl實(shí)現(xiàn)3D餅圖環(huán)形餅圖
現(xiàn)在vue是很多公司前端的主流框架,我目前所在公司接觸的項(xiàng)目也都是使用vue來(lái)實(shí)現(xiàn)的,很少有完全使用原生的JavaScript來(lái)寫項(xiàng)目的了,下面這篇文章主要給大家介紹了關(guān)于vue中如何使用echarts和echarts-gl實(shí)現(xiàn)3D餅圖環(huán)形餅圖的相關(guān)資料,需要的朋友可以參考下2023-03-03vue-router配合ElementUI實(shí)現(xiàn)導(dǎo)航的實(shí)例
下面小編就為大家分享一篇vue-router配合ElementUI實(shí)現(xiàn)導(dǎo)航的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02使用VUE實(shí)現(xiàn)一鍵復(fù)制內(nèi)容功能
這篇文章主要介紹了使用VUE實(shí)現(xiàn)一鍵復(fù)制內(nèi)容功能,功能就是當(dāng)我們點(diǎn)擊復(fù)制按鈕時(shí),會(huì)提示“復(fù)制成功”,這樣復(fù)制的內(nèi)容就可以在其他地方使用了,感興趣的朋友可以學(xué)習(xí)一下2023-04-04vue-cli webpack模板項(xiàng)目搭建及打包時(shí)路徑問(wèn)題的解決方法
這篇文章主要介紹了vue-cli webpack模板項(xiàng)目搭建以及打包時(shí)路徑問(wèn)題的解決方法,需要的朋友可以參考下2018-02-02vue css 引入asstes中的圖片無(wú)法顯示的四種解決方法
這篇文章主要介紹了vue css 引入asstes中的圖片 無(wú)法顯示的幾種解決方案,本文給出了四種解決方法,每種方法給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03vue離開(kāi)當(dāng)前頁(yè)面觸發(fā)的函數(shù)代碼
這篇文章主要介紹了vue離開(kāi)當(dāng)前頁(yè)面觸發(fā)的函數(shù)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09