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实现网页跳转或用命令打开指定网页的解决方法
Jul 09 Javascript
JS过滤url参数特殊字符的实现方法
Dec 24 Javascript
js函数内变量的作用域分析
Jan 12 Javascript
JS中捕获console.log()输出的方法
Apr 16 Javascript
JS实现仿苹果底部任务栏菜单效果代码
Aug 28 Javascript
JavaScript中的数据类型转换方法小结
Oct 26 Javascript
jquery插件autocomplete用法示例
Jul 01 Javascript
js友好的时间返回函数
Aug 24 Javascript
JavaScript引用类型Date常见用法实例分析
Aug 08 Javascript
node.js实现简单的压缩/解压缩功能示例
Nov 05 Javascript
js实现3D旋转相册
Aug 02 Javascript
关于angular 8.1使用过程中的一些记录
Nov 25 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
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
php array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
python自带的http模块详解
2016/11/06 Python
利用Python抓取行政区划码的方法
2016/11/28 Python
Python的标准模块包json详解
2017/03/13 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
python爬虫容易学吗
2020/06/02 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
中国旅游网站:同程旅游
2016/09/11 全球购物
家庭教育先进个人事迹材料
2014/01/24 职场文书
运动会入场解说词
2014/02/07 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL