Bootstrap+jfinal实现省市级联下拉菜单


Posted in Javascript onMay 30, 2016

小小一个省市级关联菜单,却耗费了一个很多时间来摸索,原因在于对jquery不熟练,既然这么辛苦完成了一个组件,自然想要共享出来,让需要的人使用。

Bootstrap+jfinal实现省市级联下拉菜单

这只是一个基础版,后续还要再进行优化。

代码:省市级关联菜单下载地址

说明:

sql语句就不再说了,里面有“city.sql”、“provincial.sql”两个文件。

1、先说说获取数据

public void initProcitys() {
 logger.info("获取所在地区");
 List<Provincials> provincials = Provincials.me.getProvincials();
 for (Provincials provincial : provincials) {
 List<Citys> citys = Citys.me.getCitysByProvincialId(provincial.getLong("id"));
 provincial.put("citys", JsonKit.toJson(citys));
 }
 setAttr("provincials", provincials);
 render("procity.jsp");
}

1). 先获取所有的省级菜单。
2). 根据省级id获取对应的市级菜单。
3). 在获取市级菜单的时候,注意把list转换为json数据,这里使用了JackJson.

2、说说页面布局

<select name="province_code" id="province_select">
 <c:forEach items="${provincials}" var="item">
 <option value="${item.procode}" cdata='${item.citys}'>${item.proname}</option>
 </c:forEach>
</select>
<select name="city_code" id="city_select">
</select>

1). 使用了两个select,还没有加式样
2). 使用foreach先对省级菜单进行初始化,同时将其city数据绑定到cdata属性上。

3、说说js实现

$(function() {
 provincialChange();
 var $provincial = $("#province_select");
 $provincial.change(provincialChange);
});
function provincialChange() {
 var $provincial = $("#province_select");
 // 省级显示的code值
 var provincial_code = $provincial.val();
 var $selectedOption = $('#province_select option[value=' + provincial_code + ']');
 var city_data = YUNM.jsonEval($selectedOption.attr("cdata"));
 // 市级的菜单列表
 $city_select = $("#city_select");
 $city_select.empty();
 for (var i = 0; i < city_data.length;i++ ) {
 var code = city_data[i].code;
 var cname = city_data[i].cname;
 $city_select.append("<option value='"+code+"'>"+cname+"</option>");
 }
}

1). 页面初始化加载和省级菜单切换时,需要对市级菜单进行加载
2). 先拿到省级菜单,获取当前value,然后根据value获取option
3). 从option中获取市级数据,注意要使用eval对数据转换,具体原因可以度娘,主要是加上 ()。
4.) 循环遍历市级菜单,进行输出显示

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望对大家学习Bootstrap程序设计有所帮助。

Javascript 相关文章推荐
JQuery筛选器全系列介绍
Aug 27 Javascript
使用GruntJS构建Web程序之安装篇
Jun 04 Javascript
jQuery CSS3相结合实现时钟插件
Jan 08 Javascript
jQuery ajax提交Form表单实例(附demo源码)
Apr 06 Javascript
AngularJS实践之使用NgModelController进行数据绑定
Oct 08 Javascript
Bootstrap框架的学习教程详解(二)
Oct 18 Javascript
javascript实现简单的ajax封装示例
Dec 28 Javascript
Node.js中如何合并两个复杂对象详解
Dec 31 Javascript
Angular2利用组件与指令实现图片轮播组件
Mar 27 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
Mar 09 Javascript
原生JavaScript之es6中Class的用法分析
Feb 23 Javascript
vue中 this.$set的使用详解
Nov 17 Vue.js
基于Bootstrap里面的Button dropdown打造自定义select
May 30 #Javascript
BootStrap下jQuery自动完成的样式调整
May 30 #Javascript
JavaScript常用判断写法大全(推荐)
May 30 #Javascript
基于AngularJs + Bootstrap + AngularStrap相结合实现省市区联动代码
May 30 #Javascript
基于Angularjs实现分页功能
May 30 #Javascript
AngularJs实现分页功能不带省略号的代码
May 30 #Javascript
JS组件Bootstrap Select2使用方法解析
May 30 #Javascript
You might like
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
php封装的连接Mysql类及用法分析
2015/12/10 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
js 事件小结 表格区别
2007/08/13 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
javaScript基础详解
2017/01/19 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
小程序关于请求同步的总结
2019/05/05 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
python批量下载图片的三种方法
2013/04/22 Python
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
工作违纪检讨书范文
2015/01/26 职场文书
会计人员岗位职责
2015/02/03 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
交通事故代理词范文
2015/05/23 职场文书
tree shaking对打包体积优化及作用
2022/07/07 Java/Android