iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue下拉框双向联动效果的示例代码
  • 419
分享到

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

2024-04-02 19:04:59 419人浏览 薄情痞子
摘要

一、前言 在开发前端页面的时候,常常需要写下拉框,普通常见的下拉框有在页面写死固定值的下拉框,有通过调用后台接口服务而获取的值列表等。无论是原始的jsp页面html页面等,还是现在流

一、前言

开发前端页面的时候,常常需要写下拉框,普通常见的下拉框有在页面写死固定值的下拉框,有通过调用后台接口服务而获取的值列表等。无论是原始的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下拉框双向联动内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue下拉框双向联动效果的示例代码

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue下拉框双向联动效果的示例代码
    一、前言 在开发前端页面的时候,常常需要写下拉框,普通常见的下拉框有在页面写死固定值的下拉框,有通过调用后台接口服务而获取的值列表等。无论是原始的jsp页面html页面等,还是现在流...
    99+
    2024-04-02
  • VUE多个下拉框实现双向联动效果
    本文实例为大家分享了VUE多个下拉框实现双向联动的具体代码,供大家参考,具体内容如下 一、前言 在开发前端页面的时候,常常需要写下拉框,普通常见的下拉框有在页面写死固定值的下拉框,有...
    99+
    2024-04-02
  • Vue怎么实现下拉框双向联动效果
    今天小编给大家分享一下Vue怎么实现下拉框双向联动效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、前言在开发前端页面的...
    99+
    2023-06-29
  • vue实现下拉框二级联动效果的实例代码
    1、实现效果 2、后端返回的数据格式 "list": [ { "id": "1178214681118568449", "title...
    99+
    2024-04-02
  • vue如何实现下拉框二级联动效果
    这篇文章主要介绍vue如何实现下拉框二级联动效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、实现效果2、后端返回的数据格式"list": [   &n...
    99+
    2023-06-25
  • Vue实现上拉加载下一页效果的示例代码
    之前从来没有单独的做过手机端的网页。当然,之前我也没有独立的从切图到写代码交互做过前端的页面。 这里边的分页还是和响应电脑端的数字分页。但是,其实独立做一个手机端的网站,而不是响应式...
    99+
    2024-04-02
  • Vue 动画效果、过渡效果的示例代码
    目录动画效果过渡效果单个元素多个元素Animate.css总结todolist 增加动画效果动画效果 新建 Test.vue <template> <div&...
    99+
    2024-04-02
  • jquery实现盒子下拉效果示例代码
    复制代码 代码如下: <script src="js/Jquery1.7.js"></script> <script type="text/javasc...
    99+
    2022-11-15
    jquery 盒子下拉
  • Vue+ElementUI实现从后台动态填充下拉框的示例代码
    1、首先编写前端代码,将elementUI中的标签写到.vue界面中。  <el-select       v-model="xxxQuery.xxxid"       pla...
    99+
    2024-04-02
  • Java实现级联下拉结构的示例代码
    目录前言构建统一返回下拉结构构建集合<对象>转下拉树工具类构建List<Map>转下拉或下拉树的工具类前言 在开发过程中,会遇到很多的实体需要将查出的数据处理...
    99+
    2024-04-02
  • 怎么用ajax+textbox动态生成下拉框示例代码
    这篇文章主要介绍“怎么用ajax+textbox动态生成下拉框示例代码”,在日常操作中,相信很多人在怎么用ajax+textbox动态生成下拉框示例代码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • element-plus下拉框实现全选的示例代码
    目录前言下拉框的简单使用全选互斥下拉框多选全选互斥的实现多个下拉框互斥一般全选的实现前言 实习确实能学到不少东西,但是学到的东西果然还是需要沉淀下来,不然后面立马又忘记了。 下拉框的...
    99+
    2024-04-02
  • 基于vue实现新闻自下往上滚动效果(示例代码)
    如图所示自下往上滚动鼠标放上暂停滚动 鼠标移出继续滚动 一、html: <div class="newsList" @mouseover="mouseOver" @mouse...
    99+
    2024-04-02
  • vue基于vant实现上拉加载下拉刷新的示例代码
    前言 普遍存在于各种app中的上拉加载下拉刷新功能大家都不陌生吧,一般来说,在数据量比较大的情况下,为了更快的渲染和给用户更好的观感体验,我们会将数据做分页处理,让其批量加载,这样一...
    99+
    2024-04-02
  • elementUI实现下拉选项加多选框的示例代码
    目录下拉加多选框升级—添加全部选项需求改版完善因产品需求和UI样式调整,和element自带的下拉多选有冲突,索性自己尝试修改如下: 下拉加多选框 效果如下图: 封装如下: &...
    99+
    2024-04-02
  • Python实现双向RNN与堆叠的双向RNN的示例代码
    目录1、双向RNN2、堆叠的双向RNN3、双向LSTM实现MNIST数据集分类1、双向RNN 双向RNN(Bidirectional RNN)的结构如下图所示。 双向的 RNN...
    99+
    2024-04-02
  • vue实现无缝轮播效果的示例代码
    小编给大家分享一下vue实现无缝轮播效果的示例代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下首先创建两个vue组件Sweiper.vue和Swei...
    99+
    2023-06-15
  • vue实现el-menu和el-tab联动的示例代码
    vue通过el-menus和el-tabs联动,实现点击侧边栏,页面内显示一行tab以及点击tab切换路由 实现效果如下 实现思路 左侧边栏添加点击事件/设置el-menu的路由...
    99+
    2023-05-15
    el-menu和el-tab联动 el-menu el-tab
  • 小程序上滑下滑效果的示例代码
    首先上视频 ,csdn上传视频还要上传到腾讯视频或者B站才能发,太捞了,视频之前录好了,弄成gif图将就看吧。 就像图里展示的那样,我要的是这种效果,滑动一下就进入下个页面,而不是...
    99+
    2024-04-02
  • react+antdselect下拉框实现模糊搜索匹配的示例代码
    我们在开发过程中,经常会出现下拉框数据很多得情况,这个时候客户一个个得找就很浪费时间,那该怎么办呢? 我们可以实现一边输入一遍模糊匹配。 实现后的效果是 具体代码实现请看下面: ...
    99+
    2023-01-31
    react antd select模糊搜索 react antd select下拉框
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作