省市区联动下拉效果在WEB应用中使用非常广泛,尤其在一些会员信息系统、电商网站最为常见,开发者一般使用AJAX实现无刷新下拉联动。
 本文将讲述利用jQuery插件,通过读取JSON数据,实现无刷新动态下拉省市二(三)级联动效果。
HTML
 首先在head中载入jquery库和cityselect插件。
    
     - 
      
       
      
      
       
        <script src="jquery.js"></script> 
       
      
- 
      
       
      
      
       
        <script src="jquery.cityselect.js"></script>
       
      
   接下来,我们在#city中,放置三个select,并且三个select分别设置class属性为:prov、city、dist,分别表示省、市、区(县)三个下拉框。
 如果只想实现省市二级联动,则去掉第三个dist的select即可。
    
     - 
      
       
      
      
       
        <div id="city"> 
       
      
- 
      
       
      
      
       
            <select class="prov"></select> 
       
      
- 
      
       
      
      
       
         <select class="city" disabled="disabled"></select> 
       
      
- 
      
       
      
      
       
         <select class="dist" disabled="disabled"></select> 
       
      
- 
      
       
      
      
       
        </div>
       
      
- 
      
       
      
      
       
        
       
      
   注意:这三个class的名称不能随便修改。
 jQuery
 调用cityselect插件非常简单,直接调用: 
    
     - 
      
       
      
      
       
        $(function(){
       
      
- 
      
       
      
      
       
            $("#city").citySelect(); //这个city对应上面定义的div的id
       
      
- 
      
       
      
      
       
        });
       
      
   自定义参数调用,设置默认省市区。
    
     - 
      
       
      
      
       
        $("#city").citySelect({  
       
      
- 
      
       
      
      
       
            url:"js/city.min.js",  
       
      
- 
      
       
      
      
       
            prov:"湖南", //省份 
       
      
- 
      
       
      
      
       
            city:"长沙", //城市 
       
      
- 
      
       
      
      
       
            dist:"岳麓区", //区县 
       
      
- 
      
       
      
      
       
            nodata:"none" //当子集无数据时,隐藏select 
       
      
- 
      
       
      
      
       
        });
       
      
   注意:作者原文有很多读者留言说不能使用,主要就是这个url地址不对造成的,这个地址必须指向系统的根目录(很多项目的图片、JS和css都放在根目录的一个文件夹中,如这个目录是static,url地址就是:/static/js/city.min.js,要确保JS文件已放到此处),否则会读不到省市数据源,这就是很多读者反映的下拉列表为空的问题所在。
当然,你还可以扩展,自定义下拉列表选项数据,注意数据格式一定要为JSON格式。
    
     - 
      
       
      
      
       
        $("#city").citySelect({ 
       
      
- 
      
       
      
      
       
            url:{"citylist":[ 
       
      
- 
      
       
      
      
       
                {"p":"前端技术","c":[{"n":"HTML"},{"n":"CSS","a":[{"s":"CSS2.0"},{"s":"CSS3.0"}]}, 
       
      
- 
      
       
      
      
       
                {"n":"JAVASCIPT"}]}, 
       
      
- 
      
       
      
      
       
                {"p":"编程语言","c":[{"n":"C"},{"n":"C++"},{"n":"PHP"},{"n":"JAVA"}]}, 
       
      
- 
      
       
      
      
       
                {"p":"数据库","c":[{"n":"Mysql"},{"n":"SqlServer"},{"n":"Oracle"}]}, 
       
      
- 
      
       
      
      
       
            ]}, 
       
      
- 
      
       
      
      
       
            prov:"", 
       
      
- 
      
       
      
      
       
            city:"", 
       
      
- 
      
       
      
      
       
            dist:"", 
       
      
- 
      
       
      
      
       
            nodata:"none" 
       
      
- 
      
       
      
      
       
        });
       
      
   可以利用PHP等后台语言将数据库中的数据转换成JSON格式,然后使用url参数指向后台地址就能实现无刷新联动效果。
    
     - 
      
       
      
      
       
        $("#city").citySelect({ 
       
      
- 
      
       
      
      
       
            url:"data.php" 
       
      
- 
      
       
      
      
       
        });
       
      
   文件下载地址:源码下载
 
             
           
评论(0)