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编写textarea输入字数限制代码
Mar 23 jQuery
基于jquery实现二级联动效果
Mar 30 jQuery
jQuery树插件zTree使用方法详解
May 02 jQuery
原生js jquery ajax请求以及jsonp的调用方法
Aug 04 jQuery
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
Apr 12 jQuery
JS与jQuery判断文本框还剩多少字符可以输入的方法
Sep 01 jQuery
详解jquery和vue对比
Apr 16 jQuery
jquery+css3实现的经典弹出层效果示例
May 16 jQuery
基于ajax及jQuery实现局部刷新过程解析
Sep 12 jQuery
Jquery Fade用法详解
Nov 06 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实现从身份证中提取生日
2016/05/09 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
浅谈js中的闭包
2015/03/16 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
2017/05/24 jQuery
实现两个文本框同时输入的实例
2017/09/25 Javascript
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
JS数组去重的6种方法完整实例
2018/12/08 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
vue接口请求加密实例
2020/08/11 Javascript
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
python线程、进程和协程详解
2016/07/19 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
Python解决N阶台阶走法问题的方法分析
2017/12/28 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
python join方法使用详解
2019/07/30 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
python空元组在all中返回结果详解
2020/12/15 Python
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
德国网上超市:myTime.de
2019/08/26 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
创业计划书——互联网商机
2014/01/12 职场文书
护理不良事件检讨书
2014/02/06 职场文书
大学生社会实践评语
2014/04/25 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
新生入学欢迎词
2015/01/26 职场文书
离婚案件答辩状
2015/05/22 职场文书
十月围城观后感
2015/06/08 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
node快速搭建后台的实现步骤
2022/02/18 NodeJs