返回顶部
首页 > 资讯 > 前端开发 > JavaScript >VUE多个下拉框实现双向联动效果
  • 453
分享到

VUE多个下拉框实现双向联动效果

2024-04-02 19:04:59 453人浏览 八月长安
摘要

本文实例为大家分享了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);
    ...
  },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: VUE多个下拉框实现双向联动效果

本文链接: https://lsjlt.com/news/164346.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • VUE多个下拉框实现双向联动效果
    本文实例为大家分享了VUE多个下拉框实现双向联动的具体代码,供大家参考,具体内容如下 一、前言 在开发前端页面的时候,常常需要写下拉框,普通常见的下拉框有在页面写死固定值的下拉框,有...
    99+
    2024-04-02
  • Vue怎么实现下拉框双向联动效果
    今天小编给大家分享一下Vue怎么实现下拉框双向联动效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、前言在开发前端页面的...
    99+
    2023-06-29
  • Vue下拉框双向联动效果的示例代码
    一、前言 在开发前端页面的时候,常常需要写下拉框,普通常见的下拉框有在页面写死固定值的下拉框,有通过调用后台接口服务而获取的值列表等。无论是原始的jsp页面html页面等,还是现在流...
    99+
    2024-04-02
  • vue如何实现下拉框二级联动效果
    这篇文章主要介绍vue如何实现下拉框二级联动效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、实现效果2、后端返回的数据格式"list": [   &n...
    99+
    2023-06-25
  • vue实现下拉框二级联动效果的实例代码
    1、实现效果 2、后端返回的数据格式 "list": [ { "id": "1178214681118568449", "title...
    99+
    2024-04-02
  • Vue级联下拉框怎么实现
    今天小编给大家分享一下Vue级联下拉框怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2024-04-02
  • 利用tkinter实现下拉框联动
    目录tkinter如何实现下拉框联动tkinter(Combobox下拉菜单)笔记目标试验平台直接上代码总结tkinter如何实现下拉框联动 有些小伙伴想在GUI界面上实现像前端一样...
    99+
    2023-01-28
    tkinter下拉框联动 tkinter下拉框 tkinter实现下拉框联动
  • vue实现下拉菜单效果
    本文实例为大家分享了vue实现下拉菜单效果的具体代码,供大家参考,具体内容如下 下拉菜单主要运用了hover显示与隐藏以及定位的问题 效果图: 可能出现的问题 定位后菜单的div无...
    99+
    2024-04-02
  • Mybatis + js 实现下拉列表二级联动效果
     一、业务需求 实现省份与城市的二级联动 二、实现效果 三、代码实现 1. province_city.jsp 前端界面实现 <%@ page contentT...
    99+
    2024-04-02
  • 基于 jquery-cxselect 实现下拉联动效果功能实现
    目录写在前面功能实现1、导入脚本2、编写页面组件3、JSON 数据准备4、脚本编写补充:Jquery cxSelect多级联动下拉组件的使用写在前面 下拉联动效果是一个老生常谈的问题...
    99+
    2023-02-03
    jquery-cxselect 下拉联动 jquery-cxselect 联动
  • ajax如何实现三级联动下拉菜单效果
    这篇文章给大家分享的是有关ajax如何实现三级联动下拉菜单效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ajax写三级联动,先写一个文件类吧,以后用的时候直接调用即可;来找一...
    99+
    2024-04-02
  • Ajax+Servlet如何实现无刷新下拉联动效果
    小编给大家分享一下Ajax+Servlet如何实现无刷新下拉联动效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!大类下拉框:页面加载的时候就初始化大类的下拉选项,通过后台代码去数据库里面...
    99+
    2024-04-02
  • Vue 级联下拉框的设计与实现
    目录1.数据库设计2.前端页面3.一个完整的demo​ 在前端开发中,级联选择框是经常用到的,这样不仅可以增加用户输入的友好性,还能减少前后端交互的数据量。本文以elem...
    99+
    2024-04-02
  • JavaScript中怎么实现一个二级联动下拉框
    JavaScript中怎么实现一个二级联动下拉框,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Javascript是一种由Netscape...
    99+
    2024-04-02
  • Vue实现省市区级联下拉选择框
    本文实例为大家分享了Vue实现省市区级联下拉选择框的具体代码,供大家参考,具体内容如下 以(Vue下拉选择框Select组件二)为基础实现省市区级联下拉选择框组件 (业务需...
    99+
    2024-04-02
  • vue结合vant实现联动效果
    vant中提供的选择器结合弹出框来实现联动效果,供大家参考,具体内容如下 1、用到的组件:Picker、Popup 2、引入:在main.js也好、页面中也好全局也好,正确的引入;此...
    99+
    2024-04-02
  • jQuery实现下拉菜单滑动效果
    当我们制作网页时,有的时候会想拥有一个酷炫且顺滑的下拉菜单,虽然我们使用最基础的css和js也可以完成,但利用jQuery我们只需要非常简短的代码即可完成下面的效果 是不是非常的顺...
    99+
    2024-04-02
  • Vue级联下拉框的设计和实现方法
    这篇文章主要介绍“Vue级联下拉框的设计和实现方法”,在日常操作中,相信很多人在Vue级联下拉框的设计和实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue级联下拉框的设计和实现方法”的疑惑有所帮助!...
    99+
    2023-06-20
  • Vue使用distpicker插件实现省市级下拉框三级联动
    目录前言安装distpicker引用并注册distpicker使用distpicker移动端适配美化样式取值总结前言 这几天做项目,想着用一个全国省市区插件,之前就知道有几种,比如通...
    99+
    2023-02-22
    Vue省市级下拉框三级联动 Vue使用distpicker插件 vue三级联动
  • Android实现三级联动下拉框 下拉列表spinner的实例代码
    主要实现办法:动态加载各级下拉值的适配器 在监听本级下拉框,当本级下拉框的选中值改变时,随之修改下级的适配器的绑定值        &...
    99+
    2022-06-06
    spinner 级联 下拉框 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作