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

 更新时间:2016年05月30日 14:15:33   投稿:lijiao  
这篇文章主要为大家详细介绍了Bootstrap+jfinal实现省市级联下拉菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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


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

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

说明:

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学习教程

Bootstrap实战教程

Bootstrap插件使用教程

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

相关文章

  • 微信小程序实战之上拉(分页加载)效果(2)

    微信小程序实战之上拉(分页加载)效果(2)

    这篇文章主要介绍了微信小程序实战之上拉加载、分页加载效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • javascript获取文档坐标和视口坐标

    javascript获取文档坐标和视口坐标

    制作网页的过程中,你有时候需要知道某个元素在网页上的确切位置。下面的教程总结了Javascript在网页定位方面的相关知识。有需要的小伙伴可以参考下。
    2015-05-05
  • JavaScript使用位运算符判断奇数和偶数的方法

    JavaScript使用位运算符判断奇数和偶数的方法

    这篇文章主要介绍了JavaScript使用位运算符判断奇数和偶数的方法,涉及javascript位运算的使用技巧,需要的朋友可以参考下
    2015-06-06
  • JavaScript生成的动态下雨背景效果实现方法

    JavaScript生成的动态下雨背景效果实现方法

    这篇文章主要介绍了JavaScript生成的动态下雨背景效果实现方法,通过自定义函数实现动态背景效果,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • js数组去重的方法总结

    js数组去重的方法总结

    今天小编就为大家分享一篇关于js数组去重的方法总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • ES6新特性:使用export和import实现模块化详解

    ES6新特性:使用export和import实现模块化详解

    本篇文章主要介绍了ES6新特性:使用export和import实现模块化详解,具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • Javascript中从学习bind到实现bind的过程

    Javascript中从学习bind到实现bind的过程

    这篇文章主要介绍了Javascript中从学习bind到实现bind的过程,有兴趣的朋友跟着学习下吧。
    2018-01-01
  • Dom加载让图片加载完再执行的脚本代码

    Dom加载让图片加载完再执行的脚本代码

    当大家使用window.onload执行一个函数时,必须要等到页面上的图片等信息全部加载完毕之后才执行的。但很多时候图片的数量比较多,所以需要很多时间下载。更令人尴尬的是,当网页文档(或者说Dom)已经加载完毕,而图片尚未加载完毕,很多用户已经开始浏览网页,但这时很多由window.onload所触发的函数不能执行,这就导致一部分功能不能完美地给用户使用,更严重的是会给用户留下不好的印象!
    2008-05-05
  • 浅谈js中test()函数在正则中的使用

    浅谈js中test()函数在正则中的使用

    下面小编就为大家带来一篇浅谈js中test()函数在正则中的使用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • 多种方式实现JS调用后台方法进行数据交互

    多种方式实现JS调用后台方法进行数据交互

    几种典型常用的方法如利用控件的AutopostBack属性、Button提交表单等等,下面为大家分享下JS调用后台方法进行数据交互示例
    2013-08-08

最新评论