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 相关文章推荐
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
jQuery使用unlock.js插件实现滑动解锁
Apr 04 jQuery
jQuery使用ajax_动力节点Java学院整理
Jul 05 jQuery
jQuery实现监听下拉框选中内容发生改变操作示例
Jul 13 jQuery
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 jQuery
AJAX在JQuery中的应用详解
Jan 30 jQuery
jQuery事件多次绑定与解绑问题实例分析
Feb 19 jQuery
使vue实现jQuery调用的两种方法
May 12 jQuery
jquery 时间戳转日期过程详解
Oct 12 jQuery
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 jQuery
jQuery实现鼠标滑动切换图片
May 27 jQuery
基于jQuery拖拽事件的封装
Nov 29 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
一个ubbcode的函数,速度很快.
2006/10/09 PHP
PHP 上传文件大小限制
2009/07/05 PHP
初次接触php抽象工厂模式(Elgg)
2010/03/21 PHP
深入apache host的配置详解
2013/06/09 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
js实现抽奖效果
2017/03/27 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
利用python求相邻数的方法示例
2017/08/18 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
pandas参数设置的实用小技巧
2020/08/23 Python
blueseventy官网:铁人三项和比赛泳衣
2021/02/06 全球购物
保安拾金不昧表扬信
2014/01/15 职场文书
会议主持词
2014/03/17 职场文书
小学生家长寄语
2014/04/02 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
MySQL中order by的执行过程
2022/06/05 MySQL