zoukankan      html  css  js  c++  java
  • 省市县三级联动

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, minimal-ui" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-mobile-web-app-status-bar-style" content="black" />
        <meta name="format-detection"content="telephone=no, email=no" />
        <title>省市县三级联动</title>
        <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
        <style type="text/css">
        *{margin: 0;padding: 0;}
        body{font-size: 14px;color: #333;}
        ul{padding-left: 20px;}
        </style>
        <script type="text/javascript">
        var cityjson = '{'
                +   '"province" : ['
                +      '{"id" : "1", "name" : "北京市"},'
                +      '{"id" : "2", "name" : "山西省"},'
                +      '{"id" : "3", "name" : "河北省"}'
                +   '],'
                +   '"city" : ['
                +      '{"cid" : "1", "id" : "1", "name":"海淀区"},'
                +      '{"cid" : "1", "id" : "2", "name":"西城区"},'
                +      '{"cid" : "1", "id" : "2", "name":"东城区"},'
                +      '{"cid" : "1", "id" : "3", "name":"朝阳区"},'
                +      '{"cid" : "2", "id" : "4", "name":"太原市"},'
                +      '{"cid" : "2", "id" : "5", "name":"大同市"},'
                +      '{"cid" : "2", "id" : "6", "name":"阳泉市"},'
                +      '{"cid" : "3", "id" : "7", "name":"石家庄"},'
                +      '{"cid" : "3", "id" : "8", "name":"蚌埠市"},'
                +      '{"cid" : "3", "id" : "9", "name":"张家口"}'
                +   '],'
                +   '"county" : ['
                +      '{"cid" : "1", "id" : "1", "name":"中关村"},'
                +      '{"cid" : "1", "id" : "2", "name":"五道口"},'
                +      '{"cid" : "2", "id" : "3", "name":"西直门"},'
                +      '{"cid" : "2", "id" : "4", "name":"新街口"},'
                +      '{"cid" : "2", "id" : "5", "name":"小西天"},'
                +      '{"cid" : "3", "id" : "6", "name":"东直门"},'
                +      '{"cid" : "3", "id" : "7", "name":"雍和宫"},'
                +      '{"cid" : "3", "id" : "8", "name":"北新桥"},'
                +      '{"cid" : "5", "id" : "9", "name":"城区"},'
                +      '{"cid" : "5", "id" : "10", "name":"南郊区"},'
                +      '{"cid" : "5", "id" : "11", "name":"开发区"}'
                +   ']'
                +'}';
        ;(function($, window, document, undefined){
            $.fn.showCity = function(opt){
                this.defaults = {
                    'cityjson'          : cityjson,     //json字符串变量名
                    'defaultShow'       : false,        //市、县是否显示,默认不显示
                    'showCounty'        : true,         //是否显示县
                    'defaultCity'       : [0,0,0]       //默认城市,对应id
                };
                this.options = $.extend({}, this.defaults, opt);
    
                var oCityJson = eval('('+this.options.cityjson+')'),
                    oProvince = $('.province',this),
                    oCity = $('.city',this),
                    oCounty = $('.county',this),
                    provinces = oCityJson.province,
                    citys = oCityJson.city,
                    countys = oCityJson.county;
    
                //创建省
                this.creatProvince = function(){
                    var html = '';
                    for(var i=0; i<provinces.length; i++){
                        html += '<option value='+provinces[i].id+'>'+provinces[i].name+'</option>';
                    }
                    oProvince.append(html);
                };
    
                this.creat = function(){
                    oProvince.html('<option value="0">选择省</option>');
                    this.creatProvince();
                    if(this.options.defaultShow){
                        oCity.show();
                        oCounty.show();
                        oCity.html('<option value="0">选择市</option>');
                        oCounty.html('<option value="0">选择县</option>');
                    };
                    this.defaultCity();
                    this.checkProvince();
                    if(this.options.showCounty){
                        this.checkCounty();
                    }
                };
    
                //默认城市
                this.defaultCity = function(){
                    if(this.options.defaultCity.toString() == '0,0,0'){
                        return;
                    };
    
                    var optionsCity = '';
                    for(var i=0; i<provinces.length; i++){
                        if(provinces[i].id == this.options.defaultCity[0]){
                            oProvince.val(provinces[i].id);
                            for(var j=0; j<citys.length; j++){
                                if(citys[j].cid == provinces[i].id){
                                    optionsCity += '<option value='+citys[j].id+'>'+citys[j].name+'</option>'
                                }
                            }
                            oCity.append(optionsCity).show();
                        }
                    };
    
                    var optionscounty = '';
                    for(var i=0; i<citys.length; i++){
                        if(citys[i].id == this.options.defaultCity[1] && citys[i].cid == oProvince.val()){
                            oCity.val(citys[i].id);
                            if(this.options.showCounty){
                                for(var j=0; j<countys.length; j++){
                                    if(countys[j].cid == citys[i].id){
                                        optionscounty += '<option value='+countys[j].id+'>'+countys[j].name+'</option>';
                                    }
                                }
                                oCounty.append(optionscounty).show();
                            }
                        }
                    };
    
                    if(this.options.showCounty){
                        for(var i=0; i<countys.length; i++){
                            if(countys[i].id == this.options.defaultCity[2] && countys[i].cid == oCity.val()){
                                oCounty.val(countys[i].id);
                            }
                        };
                    }
                }
    
    
                this.checkProvince = function(){
                    oProvince.bind('change',function(){
                        var html = '<option value="0">选择市</option>';
                        var val = $(this).val();
                        for(var i=0; i<citys.length; i++){
                            if(citys[i].cid == val){
                                html += '<option value='+citys[i].id+'>'+citys[i].name+'</option>'
                            }
                        }
                        oCity.html(html).show();
                        oCounty.html('<option value="0">选择县</option>');
                    })
                };
    
                this.checkCounty = function(){
                    oCity.bind('change',function(){
                        var html = '<option value="0">选择县</option>';
                        var val = $(this).val();
                        for(var i=0; i<countys.length; i++){
                            if(countys[i].cid == val){
                                html += '<option value='+countys[i].id+'>'+countys[i].name+'</option>'
                            }
                        }
                        oCounty.html(html).show();
                    })
                };
                
                return this.creat();
            }
        }(jQuery, window, document))
    
        $(function(){
            $('#selectItem').showCity({
                "defaultCity" : [2,5,10]
            });
        })
        </script>
    </head>
    <body>
    <div class="selectItem" id="selectItem">
        <select class="province"></select>
        <select class="city" style="display:none"></select>
        <select class="county" style="display:none"></select>
    </div>
    </body>
    </html>
  • 相关阅读:
    小程序请求Django后台及路由跳转
    git操作
    github 介绍
    小程序01
    HTML5要点(四)对象全整理
    JavaScript要点(十二) HTML DOM 事件
    JavaScript要点(九)HTML DOM
    JavaScript要点(八) 闭包
    inferred 和 freefrom
    MySql数据库实现分布式的主从结构
  • 原文地址:https://www.cnblogs.com/chenghu/p/5160206.html
Copyright © 2011-2022 走看看