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正则表达式在页面验证url网址输入是否正确
Apr 04 jQuery
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
jQuery模拟爆炸倒计时功能实例代码
Aug 21 jQuery
jquery实现图片跟随鼠标的实例
Oct 17 jQuery
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
jQuery中将json数据显示到页面表格的方法
May 27 jQuery
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
jQuery实现全选、反选和不选功能的方法详解
Dec 04 jQuery
jquery html添加元素/删除元素操作实例详解
May 20 jQuery
jQuery中getJSON跨域原理的深入讲解
Sep 02 jQuery
jQuery实现全选按钮
Jan 01 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
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
PHP SOCKET编程详解
2015/05/22 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
详解Angular系列之变化检测(Change Detection)
2018/02/26 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
JS实现简单的星期格式转换功能示例
2018/07/23 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
Python序列操作之进阶篇
2016/12/08 Python
python字典操作实例详解
2017/11/16 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
python中web框架的自定义创建
2019/09/08 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
上海某公司.net方向笔试题
2014/09/14 面试题
员工薪酬福利制度
2014/01/17 职场文书
《都江堰》教学反思
2014/02/07 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
心理健康教育主题班会
2015/08/13 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript
python 制作一个gui界面的翻译工具
2021/05/14 Python
mysql事务隔离级别详情
2021/10/24 MySQL