jQuery Ajax实现Select多级关联动态绑定数据的实例代码


Posted in jQuery onOctober 26, 2018

jQuery选择插件分为基本版和美化版,重点说下美化版,如下图所示:

jQuery Ajax实现Select多级关联动态绑定数据的实例代码

相比最原始的版本,美化后的选择插件可以说是很漂亮了且功能更加强大(这里不说了,自行发掘吧)。这里主要是添加了它的特有属性并调用 class=”chzn-select”:

jsp页面:

<select class=”chzn-select” id="CODE" name="CODE">
  ......
</select>

js页面:

$(".chzn-select").chosen();

注意引用jQuery的js,有多种版本,建议使用高版本,如 jquery-1.9.1.min.js。

下面进入到主题,select绑定数据是很常见的,但大多数都是静态的或者数据确定的,这些其实都很好处理,我们需要的是动态绑定且多级关联的。

通过下面的实例来看看是如何一步步处理的:

这里我只选择二级关联,更复杂的大家可以在充分掌握后再自行研究。我们要实现的是点击一个select下拉框选择后,另一个select下拉框动态关联其对应的值,如下主select是省份,关联的select是城市,数据库分别存在省份和城市的表,省份表字段有SF_ID和SF_NAME,城市表字段有CY_ID,CY__NAME,CY_SFID(关联的省份ID):

<!-- 省份 -->
<select class="chzn-select" id="ShengFen" name="ShengFen" onChange="setCity();" data-placeholder="请选择省份">
  <option value=""></option>
  <option value="">全部</option>
  <c:foreach items="${sfList}" var="sf">
   <option value="${sf.SF_ID}" <c:if test="${pd.sfId == sf.SF_ID}">selected</c:if>>${sf.SF_NAME} 
   </option>
  </c:foreach>
</select>
<!-- 城市 -->
<select class="chzn-select" id="City" name="City" data-placeholder="请选择城市">
  <option value=""></option>
  <option value="">全部</option>
  <c:foreach items="${cyList}" var="cy">
   <option value="${cy.CY_ID}" <c:if test="${pd.cyId == cy.CY_ID}">selected</c:if>>${cy.CY_NAME} 
   </option>
  </c:foreach>
</select>

这里初始化的时候后台从数据库取数传值到页面,后台使用的是ModeView和PageData,大家视情况而定。

首先给主select省份添加onChange方法,表示选择更改的触发,即省份修改后城市对应的下拉框中的值也要变化,对应的处理方法是setCity(),我们使用ajax的方式来获取数据,如下在js中处理:

//下拉框动态关联
function setCity(){
  // 获取选择的省份的ID
  var sfId = $("#ShengFen").val();
  $.ajax({
   type : "POST",
   url : "SFAndCity/setCity.do",
   data : {"sfId":sfId},
   dataType : "json",
   success : function(data){
     var cyList = data.cyList;
     // 移除以前的绑定数据
     $("#City option").remove();
     // 美化一下select(可以去除)
     var _option = "<option value=\"\"";
     _option += "></option>";
     _option += "<option value=\"\"";
     _option += ">全部</option>";
     // 绑定数据
     if(cfList && cyList.length != 0){
       $("select[name=City]").append(_option);
       for(var i=0;i<cyList.length;i++){
        var option = "<option value=\""+cyList.CY_ID+"\"";
        option += ">"+cyList.CY_NAME+"</option>";
        $("select[name=City]").append(option);
       }
     }else{
       $("select[name=City]").append(_option);
     }
     // 保证jQuery的选择插件动态绑定数据生效
     $("#City").trigger("liszt:updated");
     $("#City").chosen();
   }
  });
}

最后就是后台的处理了,如下:

@RequestMapping(value="/setCity")
@ResponseBody
public Map<String,Object> setCity(){
  Map<String,Object> map = new HashMap<String,Object>();
  PageData pd = new PageData();
  try{
    pd = this.getPageData();
    String sfId = pd.getString("sfId"); //和ajax中传递的保持一致
    pd.put("CY_SFID",sfId);
    List<PageData> cyList = cyService.listCityBysfId(pd);
    map.put("cyList",cyList);  //和ajax中获取的保持一致
    return map;
  }catch(Exception e){
    
  }
  return map;
}

当然,上面关于数据的获取根据自己实际代码来编写,主要是获取数据并返回。

总结

以上所述是小编给大家介绍的jQuery Ajax实现Select多级关联动态绑定数据的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
使用jquery+iframe做一个ajax上传效果(实例)
Aug 24 jQuery
jquery实现图片跟随鼠标的实例
Oct 17 jQuery
jQuery实现鼠标响应式透明度渐变动画效果示例
Feb 13 jQuery
jQuery解析json格式数据示例
Sep 01 jQuery
jQuery动态操作表单示例【基于table表格】
Dec 06 jQuery
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 jQuery
详解jquery和vue对比
Apr 16 jQuery
基于jquery ajax的多文件上传进度条过程解析
Sep 11 jQuery
JQuery中的常用事件、对象属性与使用方法分析
Dec 23 jQuery
jQuery操作元素的内容和样式完整实例分析
Jan 10 jQuery
jQuery AJAX应用实例总结
May 19 jQuery
jQuery实现手风琴特效
Jan 11 jQuery
jquery使用FormData实现异步上传文件
Oct 25 #jQuery
jQuery+Datatables实现表格批量删除功能【推荐】
Oct 24 #jQuery
jQuery pagination分页示例详解
Oct 23 #jQuery
jquery.pagination.js分页使用教程
Oct 23 #jQuery
jquery分页插件pagination使用教程
Oct 23 #jQuery
使用jquery Ajax实现上传附件功能
Oct 23 #jQuery
jquery实现动态添加附件功能
Oct 23 #jQuery
You might like
PHP连接access数据库
2008/03/27 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
PHP获取url的函数代码
2011/08/02 PHP
php命名空间学习详解
2014/02/27 PHP
php统计数组元素个数的方法
2015/07/02 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
jQuery 行级解析读取XML文件(附源码)
2009/10/12 Javascript
JavaScript Event学习第六章 事件的访问
2010/02/07 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
js实现图片轮播效果
2015/12/19 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python算法之图的遍历
2017/11/16 Python
Python编程把二叉树打印成多行代码
2018/01/04 Python
Python实现的栈(Stack)
2018/01/26 Python
python中的随机函数random的用法示例
2018/01/27 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
HTML5标签小集
2011/08/02 HTML / CSS
2014小学数学教师个人工作总结
2014/12/18 职场文书
表扬信范文
2015/05/04 职场文书
javascript对象3个属性特征
2021/11/17 Javascript