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>
  • 相关阅读:
    LeetCode 109 Convert Sorted List to Binary Search Tree
    LeetCode 108 Convert Sorted Array to Binary Search Tree
    LeetCode 107. Binary Tree Level Order Traversal II
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 103 Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 104. Maximum Depth of Binary Tree
    接口和多态性
    C# 编码规范
  • 原文地址:https://www.cnblogs.com/chenghu/p/5160206.html
Copyright © 2011-2022 走看看