省市县三级联动(与后台仅交互一次)

来源:互联网 发布:win10系统改mac地址 编辑:程序博客网 时间:2024/05/23 18:07
<script type="text/javascript">


    // 省市县三级假数据,实际开发中,该变量的值可改为AJAX获取
    var area = "[{id:101,name:'北京',pid:0},{id:102,name:'山东',pid:0},{id:103,name:'河北',pid:0},{id:201,name:'海淀区',pid:101},{id:202,name:'丰台区',pid:101},{id:203,name:'朝阳区',pid:101},{id:210,name:'济南',pid:102},{id:211,name:'青岛',pid:102},{id:212,name:'烟台',pid:102},{id:220,name:'石家庄',pid:103},{id:221,name:'邯郸',pid:103},{id:222,name:'邢台',pid:103},{id:301,name:'长清',pid:210},{id:302,name:'市中区',pid:210},{id:303,name:'章丘',pid:210},{id:304,name:'市南区',pid:211},{id:305,name:'黄岛',pid:211},{id:306,name:'平度',pid:211}]";

    // 将字符串转成JSON对象
    var areaJson = eval("(" + area + ")");

    // 页面加载完成后执行的方法
    $(function(){

        renderProvince();

        var selectedProvinceId = $("#provinceSelect").val();

        renderCity(selectedProvinceId);

        var selectedCityeId = $("#citySelect").val();

        renderCountry(selectedCityeId);
    });


    // 渲染【省】下拉框
    function renderProvince(){

        for(var i=0; i<areaJson.length; i++){

            if(areaJson[i].pid == 0){
                var provinceOption = "<option value="+areaJson[i].id+">"+areaJson[i].name+"</option>";
                $("#provinceSelect").append(provinceOption);
            }
        }
    }

    // 渲染【市】下拉框
    function renderCity(provinceId){
        
        $("#citySelect").empty();

        for(var i=0; i<areaJson.length; i++){

            if(areaJson[i].pid == provinceId){
                var cityOption = "<option value="+areaJson[i].id+">"+areaJson[i].name+"</option>";
                $("#citySelect").append(cityOption);
            }
        }
    }

    // 渲染【县】下拉框
    function renderCountry(cityId){
        
        $("#countrySelect").empty();
        for(var i=0; i<areaJson.length; i++){

            if(areaJson[i].pid == cityId){
                var countryOption = "<option value="+areaJson[i].id+">"+areaJson[i].name+"</option>";
                $("#countrySelect").append(countryOption);
            }
        }
    }

    // 刷新【市】和【县】两级下拉框
    function refreshCitySelect(){

        var selectedProvinceId = $("#provinceSelect").val();

        renderCity(selectedProvinceId);

        var selectedCityeId = $("#citySelect").val();

        renderCountry(selectedCityeId);
    }

    // 刷新【县】下拉框
    function refreshCountrySelect(){
                
        var selectedCityeId = $("#citySelect").val();

        renderCountry(selectedCityeId);
    }

</script>


<body>

<div>省市县三级联动</div>
<div id="luckyName">

    <select id="provinceSelect" onchange="refreshCitySelect()"></select>

    <select id="citySelect" onchange="refreshCountrySelect()"></select>

    <select id="countrySelect"></select>★★★★★
    
</div>

</body>

0 0