最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VUE多個下拉框實現(xiàn)雙向聯(lián)動效果

 更新時間:2022年07月15日 15:49:34   作者:程序大視界  
這篇文章主要為大家詳細介紹了VUE多個下拉框實現(xiàn)雙向聯(lián)動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了VUE多個下拉框實現(xiàn)雙向聯(lián)動的具體代碼,供大家參考,具體內容如下

一、前言

在開發(fā)前端頁面的時候,常常需要寫下拉框,普通常見的下拉框有在頁面寫死固定值的下拉框,有通過調用后臺接口服務而獲取的值列表等。無論是原始的jsp頁面html頁面等,還是現(xiàn)在流行的vue angluar.js等,邏輯都是一樣。本文講解VUE頁面中,多個下拉框如何實現(xiàn)雙向聯(lián)動效果。

二、代碼示例

2.1 在vue頁面的<el-form 表單里填充兩個<el-col :span="12">選項,分別為選項A和選項B,如下所示:

<el-col :span="12">
? ? ? ? <el-form-item label="選項A" ?prop="A"> ? ? ? ? ? ?
? ? ? ? ? <el-select style="width: 100%;" @change="changeAList($event)"
? ? ? ? ? ? v-model="temp.A"
? ? ? ? ? ? filterable
? ? ? ? ? ? remote
? ? ? ? ? ? clearable
? ? ? ? ? ? placeholder="請選擇"
? ? ? ? ? ? :remote-method="getAMethod"
? ? ? ? ? ? :loading="loading">
? ? ? ? ? ? <el-option
? ? ? ? ? ? ? v-for="item in ListA"
? ? ? ? ? ? ? :key="item.value"
? ? ? ? ? ? ? :label="item.value"
? ? ? ? ? ? ? :value="item.label">
? ? ? ? ? ? </el-option>
? ? ? ? ? </el-select>
? ? ? ? </el-form-item>
? ? ? </el-col>
? ? ? <el-col :md="12" >
? ? ? ? <el-form-item label="選項B" ?prop="B"> ? ? ? ? ? ?
? ? ? ? ? <el-select style="width: 100%;" @change="changeBList($event)"
? ? ? ? ? ? v-model="temp.B"
? ? ? ? ? ? filterable
? ? ? ? ? ? remote
? ? ? ? ? ? clearable
? ? ? ? ? ? placeholder="請選擇"
? ? ? ? ? ? :remote-method="getBMethod"
? ? ? ? ? ? :loading="loading">
? ? ? ? ? ? <el-option
? ? ? ? ? ? ? v-for="item in ListB"
? ? ? ? ? ? ? :key="item.value"
? ? ? ? ? ? ? :label="item.value"
? ? ? ? ? ? ? :value="item.label">
? ? ? ? ? ? </el-option>
? ? ? ? ? </el-select>
? ? ? ? </el-form-item>
</el-col>

2.2 在data的return模塊定義兩個list集合,用于裝載選項A和選項B的數(shù)據(jù)list集

data() {
? ? return {
?
? ? ? ? ? ? ? ListA: [],
?
? ? ? ? ? ? ? ListB: [],
? ? ? ? }
}

2.3 在methods: 方法區(qū)定義下拉框選項加載從后臺接口服務獲取的方法。getAMethod用來加載A選項的下拉框內容。getBMethod用來加載B選項的下拉框內容。

getAMethod(temp) {
? ? ? ? XXAPI.getAValue(temp)
? ? ? ? .then(response => {
? ? ? ? ? if(response.data && response.status == 200){
? ? ? ? ? ? this.ListA= []
? ? ? ? ? ? var result = response.data.data.XX
? ? ? ? ? ? let jsonObj = JSON.parse(result);
? ? ? ? ? ? for (let k of Object.keys(jsonObj)) {
? ? ? ? ? ? ? this.ListA.push(
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? label: k,
? ? ? ? ? ? ? ? ? value: jsonObj[k].屬性A,
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? )
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? })
? ? ? },
? ? ? getBMethod(temp) {
? ? ? ? XXAPI.getDicValue2(temp)
? ? ? ? .then(response => {
? ? ? ? ? if(response.data && response.status == 200){
? ? ? ? ? ? this.ListB = []
? ? ? ? ? ? var result = response.data.data.XX
? ? ? ? ? ? let jsonObj = JSON.parse(result);
? ? ? ? ? ? for (let k of Object.keys(jsonObj)) {
? ? ? ? ? ? ? this.ListB .push(
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? label: k,
? ? ? ? ? ? ? ? ? value: jsonObj[k].屬性B,
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? )
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? })
? ? ? },

上述步驟僅完成基本的框架搭建,也就是說后臺和前端的數(shù)據(jù)集合裝載以及接口服務調用用以獲取數(shù)據(jù)集合等。

2.4 實現(xiàn)聯(lián)動,大家都知道在vue的頁面中,想要實現(xiàn)多個<el-select 下拉框的值動態(tài)改變,必須要調用@change 函數(shù)。也就是圖1中已經標注的:@change="changeAList($event) 和 @change="changeBList($event)

通過這2個方法即可實現(xiàn)兩個下拉框的雙向聯(lián)動效果。

同樣在methods:方法區(qū)定義方法:

changeBList(e){
? ? ? this.indexSelectB(e)
? ? },
? ?changeAList(e){
? ? ? this.indexSelectA(e)
? ? },
?
? ? ?indexSelectB(e){
? ? ? ? if(this.ListA == undefined || this.ListA .length <= 0){
? ? ? ? ? ? this.getAMethod(this.temp);
? ? ? ? }
? ? ? ? let i = 0;
? ? ? ? for (i = 0;i<this.ListA .length;i++) {
? ? ? ? ? if (this.ListA [i].label == e){
? ? ? ? ? ? this.temp.A= this.ListA [i].value;
? ? ? ? ? ? break
? ? ? ? ? }
? ? ? ? }
? ? ? },
? ? ? indexSelectA(e){
? ? ? ? if(this.ListB == undefined || this.ListB.length <= 0){
? ? ? ? ? ? this.getBMethod(this.temp);
? ? ? ? }
? ? ? ? let i = 0;
? ? ? ? for (i = 0;i<this.ListB.length;i++) {
? ? ? ? ? if (this.ListB[i].label == e){
? ? ? ? ? ? this.temp.B= this.ListB[i].value;
? ? ? ? ? ? break
? ? ? ? ? }
? ? ? ? }
? ? ? }

以上方法即可實現(xiàn)選項A和選項B兩個下拉框的雙向聯(lián)動。但是有個小缺陷,必須要輸入字符后才能加載出來數(shù)據(jù)。

這是因為沒有在頁面創(chuàng)建的時候,就把后臺的數(shù)據(jù)load出來,實現(xiàn)這個效果也很簡單,只需要在created模塊中調用兩個加載后臺接口服務的方法即可,如下:

created() {
? ? ...
? ? this.getAMethod(this.temp);
? ? this.getBMethod(this.temp);
? ? ...
? },

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • vue中的@click.native 原生點擊事件

    vue中的@click.native 原生點擊事件

    這篇文章主要介紹了vue中的@click.native 原生點擊事件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue如何監(jiān)聽el-select選擇值的變化

    vue如何監(jiān)聽el-select選擇值的變化

    這篇文章主要介紹了vue如何監(jiān)聽el-select選擇值的變化,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue導出excel和echart圖形分別在不同工作表的實現(xiàn)方法

    vue導出excel和echart圖形分別在不同工作表的實現(xiàn)方法

    這篇文章主要給大家介紹了如何使用vue實現(xiàn)導出excel和echart圖形分別在不同工作表,文中有詳細的代碼示例供大家參考,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2023-10-10
  • elementui實現(xiàn)表格自定義排序的示例代碼

    elementui實現(xiàn)表格自定義排序的示例代碼

    本文主要介紹了elementui實現(xiàn)表格自定義排序的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • 如何防止Vue組件重復渲染的方法示例

    如何防止Vue組件重復渲染的方法示例

    在 Vue.js 中,組件的重復渲染是一個常見的問題,可能會影響應用的性能和用戶體驗,為了提升應用的性能,開發(fā)者需要理解 Vue 的渲染機制,并應用有效的方法來避免不必要的組件重渲染,本文將深入探討如何防止 Vue 組件重復渲染,并提供相關示例代碼,需要的朋友可以參考下
    2024-10-10
  • vue3.0中使用element的完整步驟

    vue3.0中使用element的完整步驟

    這篇文章主要給大家介紹了關于vue3.0中使用element的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • vue調用語音播放的方法

    vue調用語音播放的方法

    這篇文章主要為大家詳細介紹了vue調用語音播放的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Vue實現(xiàn)驗證碼登錄全過程

    Vue實現(xiàn)驗證碼登錄全過程

    這篇文章主要介紹了Vue實現(xiàn)驗證碼登錄全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • vue下canvas裁剪圖片實例講解

    vue下canvas裁剪圖片實例講解

    在本篇文章里小編給大家整理了關于vue下canvas裁剪圖片實例講解內容,需要的朋友們可以參考下。
    2020-04-04
  • Vue中使用Teleport的方法示例

    Vue中使用Teleport的方法示例

    這篇文章主要為大家介紹了Vue中使用Teleport的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08

最新評論

临澧县| 孟州市| 郧西县| 外汇| 花莲市| 德安县| 宝兴县| 威宁| 霍城县| 晋州市| 三河市| 宁晋县| 台东市| 离岛区| 德令哈市| 达日县| 集安市| 汉沽区| 麻栗坡县| 台北市| 垫江县| 南康市| 新疆| 抚顺县| 白水县| 云梦县| 馆陶县| 得荣县| 余姚市| 丹东市| 武冈市| 富阳市| 旺苍县| 通辽市| 枣阳市| 黄大仙区| 沅陵县| 镶黄旗| 慈利县| 阿拉善右旗| 万州区|