基于jQuery+JSON的省市联动效果

举报
lxw1844912514 发表于 2022/03/27 02:54:10 2022/03/27
【摘要】 省市区联动下拉效果在WEB应用中使用非常广泛,尤其在一些会员信息系统、电商网站最为常见,开发者一般使用AJAX实现无刷新下拉联动。 本文将讲述利用jQuery插件,通过读取JSON数据,实现无刷新动态下拉省市二(三)级联动效果。HTML 首先在head中载入jquery库和cityselect插件。 <scrip...

省市区联动下拉效果在WEB应用中使用非常广泛,尤其在一些会员信息系统、电商网站最为常见,开发者一般使用AJAX实现无刷新下拉联动。
本文将讲述利用jQuery插件,通过读取JSON数据,实现无刷新动态下拉省市二(三)级联动效果。

HTML
首先在head中载入jquery库和cityselect插件。


    
  1. <script src="jquery.js"></script>
  2. <script src="jquery.cityselect.js"></script>

接下来,我们在#city中,放置三个select,并且三个select分别设置class属性为:prov、city、dist,分别表示省、市、区(县)三个下拉框。
如果只想实现省市二级联动,则去掉第三个dist的select即可。


    
  1. <div id="city">
  2. <select class="prov"></select>
  3. <select class="city" disabled="disabled"></select>
  4. <select class="dist" disabled="disabled"></select>
  5. </div>

注意:这三个class的名称不能随便修改。

jQuery
调用cityselect插件非常简单,直接调用:


    
  1. $(function(){
  2. $("#city").citySelect(); //这个city对应上面定义的div的id
  3. });

自定义参数调用,设置默认省市区。


    
  1. $("#city").citySelect({
  2. url:"js/city.min.js",
  3. prov:"湖南", //省份
  4. city:"长沙", //城市
  5. dist:"岳麓区", //区县
  6. nodata:"none" //当子集无数据时,隐藏select
  7. });

注意:作者原文有很多读者留言说不能使用,主要就是这个url地址不对造成的,这个地址必须指向系统的根目录(很多项目的图片、JS和css都放在根目录的一个文件夹中,如这个目录是static,url地址就是:/static/js/city.min.js,要确保JS文件已放到此处),否则会读不到省市数据源,这就是很多读者反映的下拉列表为空的问题所在。

当然,你还可以扩展,自定义下拉列表选项数据,注意数据格式一定要为JSON格式。


    
  1. $("#city").citySelect({
  2. url:{"citylist":[
  3. {"p":"前端技术","c":[{"n":"HTML"},{"n":"CSS","a":[{"s":"CSS2.0"},{"s":"CSS3.0"}]},
  4. {"n":"JAVASCIPT"}]},
  5. {"p":"编程语言","c":[{"n":"C"},{"n":"C++"},{"n":"PHP"},{"n":"JAVA"}]},
  6. {"p":"数据库","c":[{"n":"Mysql"},{"n":"SqlServer"},{"n":"Oracle"}]},
  7. ]},
  8. prov:"",
  9. city:"",
  10. dist:"",
  11. nodata:"none"
  12. });

可以利用PHP等后台语言将数据库中的数据转换成JSON格式,然后使用url参数指向后台地址就能实现无刷新联动效果。

 


    
  1. $("#city").citySelect({
  2. url:"data.php"
  3. });

文件下载地址:源码下载

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/100028701

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。