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实现拼图小游戏(实例讲解)
Jul 24 jQuery
关于JS与jQuery中的文档加载问题
Aug 22 jQuery
使用jQuery实现页面定时弹出广告效果
Aug 24 jQuery
jQuery EasyUI Layout实现tabs标签的实例
Sep 26 jQuery
jQuery中库的引用方法
Jan 06 jQuery
基于jquery trigger函数无法触发a标签的两种解决方法
Jan 06 jQuery
jQuery中ajax请求后台返回json数据并渲染HTML的方法
Aug 08 jQuery
详解jQuery获取特殊属性的值以及设置内容
Nov 14 jQuery
jQuery实现的自定义轮播图功能详解
Dec 28 jQuery
jQuery中DOM操作原则实例分析
Aug 01 jQuery
jquery实现进度条状态展示
Mar 26 jQuery
如何解决jQuery 和其他JS库的冲突
Jun 22 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使用curl简单抓取远程url的方法
2015/03/13 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
关于js datetime的那点事
2011/11/15 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
Vue.js教程之axios与网络传输的学习实践
2017/04/29 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
Python与Java间Socket通信实例代码
2017/03/06 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
初中同学聚会感言
2014/02/11 职场文书
班组长岗位职责
2014/03/03 职场文书
国家励志奖学金个人先进事迹材料
2014/05/04 职场文书
求职简历自荐信
2014/06/18 职场文书
小学生思想品德评语
2014/12/31 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
六一活动主持词
2015/06/30 职场文书
初中语文教学研修日志
2015/11/13 职场文书