欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue之elementUi的el-select同時獲取value和label的三種方式

 更新時間:2023年02月23日 14:42:14   作者:知我者碼農(nóng)  
這篇文章主要介紹了vue之elementUi的el-select同時獲取value和label的三種方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一. 需求

如下圖的下拉選項框,點擊查看需要同時獲取到選中選項的label值以及value值

以下是vue的渲染,在此不做過多介紹

<template>
  <div class="root">
    <el-select
      ref="optionRef"
      v-model="value"
      placeholder="請選擇"
      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綁定一個value值,el-option需要一個數(shù)組,以下是模擬數(shù)據(jù)

data() {
    return {
      value: "",
      options: [
        { id: 0, label: "蘋果", value: "apple" },
        { id: 1, label: "香蕉", value: "banana" },
        { id: 2, label: "橙子", value: "orange" },
      ],
    };
  },

二. 方法

1. 通過ref的形式(推薦)

在進(jìn)行el-select渲染時,給el-select添加一個ref,用于獲取值

然后就可以在點擊事件或者提交表單時獲取到選中的值了

methods: {
    showoptions() {
      console.log(
        this.$refs.optionRef.selected.value,
        this.$refs.optionRef.selected.label
      );
    },
  },

想要回顯的話直接給定el-select綁定的value為某個值即可,如想要回顯蘋果,就賦值為apple

該方法完整代碼如下:

<template>
  <div class="root">
    <el-select
      ref="optionRef"
      v-model="value"
      placeholder="請選擇"
      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. 通過字符串拼接的形式(推薦)

這個方法相對于第一種方法而已,優(yōu)點在于不止于同時獲取label和value,可以獲取多個,如再加一個id值什么的,這里演示還是以獲取label和value為例,如想要獲取其他,按照如下方式即可

我們在el-option渲染時,所設(shè)置的value屬性值可以設(shè)置成label+value的形式,如下圖

那么我們獲取值時,直接獲取el-select綁定的value即可,

獲取后的值形式如下圖,那么+號前面的就是想要的value值,后面的就是label值了,對返回的數(shù)據(jù)用split('+')進(jìn)行切割,返回的數(shù)組索引0就是value值,數(shù)組索引1就是label值 

這種方法在回顯的時候稍微有點麻煩,因為要把回顯的值也弄成value+label的形式渲染到el-select所綁定的value上,比如要回顯香蕉,就將value設(shè)置為’banana+香蕉‘

以下是第二種方法的完整代碼

<template>
  <div class="root">
    <el-select
      ref="optionRef"
      v-model="value"
      placeholder="請選擇"
      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. 通過遍歷的形式(不推薦)

這種方法就不太友好,就是通過el-select綁定的value對el-option數(shù)組進(jìn)行遍歷查找

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 分享幾個可以助你提高效率的Vue指令

    分享幾個可以助你提高效率的Vue指令

    vue是一款漸進(jìn)式JavaScript框架,漸進(jìn)式是指由淺到深,由簡單到復(fù)雜的使用vue框架,下面這篇文章主要給大家分享介紹了幾個可以助你提高效率的Vue指令,需要的朋友可以參考下
    2022-05-05
  • vue如何根據(jù)不同的環(huán)境使用不同的接口地址

    vue如何根據(jù)不同的環(huán)境使用不同的接口地址

    這篇文章主要介紹了vue如何根據(jù)不同的環(huán)境使用不同的接口地址問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue前端框架搭建過程

    Vue前端框架搭建過程

    這篇文章主要介紹了Vue前端框架搭建過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • vue中如何使用echarts和echarts-gl實現(xiàn)3D餅圖環(huán)形餅圖

    vue中如何使用echarts和echarts-gl實現(xiàn)3D餅圖環(huán)形餅圖

    現(xiàn)在vue是很多公司前端的主流框架,我目前所在公司接觸的項目也都是使用vue來實現(xiàn)的,很少有完全使用原生的JavaScript來寫項目的了,下面這篇文章主要給大家介紹了關(guān)于vue中如何使用echarts和echarts-gl實現(xiàn)3D餅圖環(huán)形餅圖的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • vue-router配合ElementUI實現(xiàn)導(dǎo)航的實例

    vue-router配合ElementUI實現(xiàn)導(dǎo)航的實例

    下面小編就為大家分享一篇vue-router配合ElementUI實現(xiàn)導(dǎo)航的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 使用VUE實現(xiàn)一鍵復(fù)制內(nèi)容功能

    使用VUE實現(xiàn)一鍵復(fù)制內(nèi)容功能

    這篇文章主要介紹了使用VUE實現(xiàn)一鍵復(fù)制內(nèi)容功能,功能就是當(dāng)我們點擊復(fù)制按鈕時,會提示“復(fù)制成功”,這樣復(fù)制的內(nèi)容就可以在其他地方使用了,感興趣的朋友可以學(xué)習(xí)一下
    2023-04-04
  • vue-cli webpack模板項目搭建及打包時路徑問題的解決方法

    vue-cli webpack模板項目搭建及打包時路徑問題的解決方法

    這篇文章主要介紹了vue-cli webpack模板項目搭建以及打包時路徑問題的解決方法,需要的朋友可以參考下
    2018-02-02
  • vue css 引入asstes中的圖片無法顯示的四種解決方法

    vue css 引入asstes中的圖片無法顯示的四種解決方法

    這篇文章主要介紹了vue css 引入asstes中的圖片 無法顯示的幾種解決方案,本文給出了四種解決方法,每種方法給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Vue實現(xiàn)瀏覽器端掃碼功能

    Vue實現(xiàn)瀏覽器端掃碼功能

    本文主要介紹,通過使用基于 vue技術(shù)棧的前端開發(fā)技術(shù),在瀏覽器端調(diào)起攝像頭,并進(jìn)行掃碼識別功能,對識別到的二維碼進(jìn)行跳轉(zhuǎn)或其他操作處理,對vue瀏覽器掃碼功能的實現(xiàn)代碼感興趣的朋友一起看看吧
    2021-10-10
  • vue離開當(dāng)前頁面觸發(fā)的函數(shù)代碼

    vue離開當(dāng)前頁面觸發(fā)的函數(shù)代碼

    這篇文章主要介紹了vue離開當(dāng)前頁面觸發(fā)的函數(shù)代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09

最新評論