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 相关文章推荐
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
Nov 23 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
Jul 09 Javascript
js实现感应鼠标图片透明度变化的方法
Feb 20 Javascript
javascript函数命名的三种方式及区别介绍
Mar 22 Javascript
javascript表单事件处理方法详解
May 15 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
May 25 Javascript
jQuery深拷贝Json对象简单示例
Jul 06 Javascript
微信小程序 网络API发起请求详解
Nov 09 Javascript
jquery对象与DOM对象转化
Feb 08 Javascript
vue awesome swiper异步加载数据出现的bug问题
Jul 03 Javascript
如何能分清npm cnpm npx nvm
Jan 17 Javascript
使用express获取微信小程序二维码小记
May 21 Javascript
基于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
关于时间计算的结总
2006/12/06 PHP
PHP编程函数安全篇
2013/01/08 PHP
JavaScript 格式字符串的应用
2010/03/29 Javascript
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
python基础教程之对象和类的实际运用
2014/08/29 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
python3.4爬虫demo
2019/01/22 Python
python字符串循环左移
2019/03/08 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
Python2与Python3的区别点整理
2019/12/12 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
python实现快递价格查询系统
2020/03/03 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
年底个人总结范文
2015/03/10 职场文书
拖欠货款起诉状
2015/05/20 职场文书
银行工作心得体会范文
2016/01/23 职场文书
导游词之广州陈家祠
2019/10/21 职场文书