Vue下拉框双向联动效果的示例代码

Vue下拉框双向联动效果的示例代码

一、前言

在开发前端页面的时候,常常需要写下拉框,普通常见的下拉框有在页面写死固定值的下拉框,有通过调用后台接口服务而获取的值列表等。无论是原始的jsp页面html页面等,还是现在流行的vue angluar.js等,逻辑都是一样。本文讲解VUE页面中,多个下拉框如何实现双向联动效果。

二、代码示例

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的数据list集

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

2.3 在methods: 方法区定义下拉框选项加载从后台接口服务获取的方法。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, } ) } } }) },

上述步骤仅完成基本的框架搭建,也就是说后台和前端的数据集合装载以及接口服务调用用以获取数据集合等。

2.4 实现联动,大家都知道在vue的页面中,想要实现多个<el-select 下拉框的值动态改变,必须要调用@change 函数。也就是图1中已经标注的:

@change="changeAList($event) 和 @change="changeBList($event)

通过这2个方法即可实现两个下拉框的双向联动效果。

同样在methods:方法区定义方法:

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 } } }

以上方法即可实现选项A和选项B两个下拉框的双向联动。但是有个小缺陷,必须要输入字符后才能加载出来数据。

这是因为没有在页面创建的时候,就把后台的数据load出来,实现这个效果也很简单,只需要在created模块中调用两个加载后台接口服务的方法即可,如下:

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

到此这篇关于Vue下拉框双向联动的文章就介绍到这了,更多相关Vue下拉框双向联动内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    设置下拉框选中|如何设定下拉选框

    设置下拉框选中|如何设定下拉选框,,1. 如何设定下拉选框设置打勾打叉选择的方框步骤是:1.先选择C2:C6单元格。2.选择“数据”标签,再点击“

    如何设置下拉框|如何设置下拉框选择

    如何设置下拉框|如何设置下拉框选择,,如何设置下拉框选择在Excel的数据中可以设置下拉框选项,具体操作请参照以下步骤。1、在电脑上打开目

    下拉框快捷键|快捷下拉按键怎么设置

    下拉框快捷键|快捷下拉按键怎么设置,,1. 快捷下拉按键怎么设置设置快捷图标固定到开始菜单旁边的方法如下:1、打开任意电脑,输入自己的用户

    下拉框怎么设置|office下拉框怎么设置

    下拉框怎么设置|office下拉框怎么设置,,office下拉框怎么设置可能隐藏了,具体操作如下:1、打开我们需要设置下拉框选项的文件,点击左上角的of

    html设置下拉框

    html设置下拉框,下拉框,选项,设置,元素,属性,默认,HTML下拉框是一种常用的网页表单控件,用户可以从下拉菜单中选择一个选项。HTML提供了多种方式

    css如何实现旋转效果(代码示例)

    css如何实现旋转效果(代码示例),属性,元素,过渡效果,画中,控制,常用,CSS是应用广泛的网页样式设计语言,旋转是其中一个常用的效果。通过CSS实现旋

    递归函数代码示例

    递归函数代码示例,递归,函数,本文目录递归函数代码示例编写一个递归函数计算从1加到100的和c语言函数递归调用c语言类函数递归调用的简单

    设置下拉框|设置下拉框的长度

    设置下拉框|设置下拉框的长度,,设置下拉框的长度步骤如下:1.打开电脑桌面,点击进入到power point文档。2.要修改PPT尺寸和它的放映比例,则需