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 EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
jQuery选择器中的特殊符号处理方法
Sep 08 jQuery
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 jQuery
javaScript和jQuery自动加载简单代码实现方法
Nov 24 jQuery
jQuery实现的点击按钮改变样式功能示例
Jul 21 jQuery
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 jQuery
jQuery插件实现的日历功能示例【附源码下载】
Sep 07 jQuery
Jquery和CSS实现选择框重置按钮功能
Nov 08 jQuery
jQuery实现的隔行变色功能【案例】
Feb 18 jQuery
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
jquery将信息遍历到界面上实例代码
Jan 21 jQuery
详解jQuery的核心函数和事件处理
Feb 18 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垃圾回收机制引用计数器概念分析
2013/06/24 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
详解Django框架中用context来解析模板的方法
2015/07/20 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
学生信息管理系统python版
2018/10/17 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
Python os.access()用法实例
2019/02/18 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
python 安装impala包步骤
2020/03/28 Python
从0到1使用python开发一个半自动答题小程序的实现
2020/05/12 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
PHP如何删除一个Cookie值
2012/11/15 面试题
教师专业自荐书范文
2014/02/10 职场文书
财务科科长岗位职责
2014/03/10 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
银行奉献演讲稿
2014/09/16 职场文书
党的群众路线教育实践活动对照检查剖析材料
2014/10/09 职场文书
护士2014年终工作总结
2014/11/11 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
2019年新郎保证书3篇
2019/10/17 职场文书
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python