select三级联动

select三级联动

获取从服务器端传回的数据,将其保存为对象

保存的数据格式为:

var provinceList = [
{name:'北京', cityList:[
    {name:'市辖区', areaList:['东城区','西城区','崇文区','宣武区','朝阳区','丰台区','石景山区','海淀区','门头沟区','房山区','通州区','顺义区','昌平区','大兴区','怀柔区','平谷区']},
    {name:'县', areaList:['密云县','延庆县']}
]},
{name:'上海', cityList:[
    {name:'市辖区', areaList:['黄浦区','卢湾区','徐汇区','长宁区','静安区','普陀区','闸北区','虹口区','杨浦区','闵行区','宝山区','嘉定区','浦东新区','金山区','松江区','青浦区','南汇区','奉贤区']},
    {name:'县', areaList:['崇明县']}
]}
]


 var selectList = [];
 function initData(data) {
        $.each(data, function (i, d) {

            var normList = {
                norm:"",
                majorList:[]
            };
            normList.norm = d.norm +"-"+ d.norm_name;


            $.each(JSON.parse(d.template), function (ii, dd) {
                var major = {
                    major:"",
                    typeList:[]
                };
                switch (ii){
                    case "jianan":
                        major.major = "建安投资";
                        break;
                    case "daitan":
                        major.major = "待摊投资";
                        break;
                    case "other":
                        major.major = "其他投资";
                        break;
                    case "shebei":
                        major.major = "设备投资";
                        break;
                }

                $.each(dd, function (index, item) {
                    major.typeList.push(item.major);
                });
                normList.majorList.push(major);

            });
            selectList.push(normList);
        });
    }
三级联动数据处理
 //三级联动
    var addressInit = function(_cmbProvince, _cmbCity, _cmbArea, defaultProvince, defaultCity, defaultArea)
    {
        var cmbProvince = document.getElementById(_cmbProvince);
        var cmbCity = document.getElementById(_cmbCity);
        var cmbArea = document.getElementById(_cmbArea);

        function cmbSelect(cmb, str)
        {
            for(var i=0; i<cmb.options.length; i++)
            {
                if(cmb.options[i].value == str)
                {
                    cmb.selectedIndex = i;
                    return;
                }
            }
        }
        function cmbAddOption(cmb, str, obj)
        {
            var option = document.createElement("OPTION");
            cmb.options.add(option);
            option.innerText = str;
            option.value = str;
            option.obj = obj;
        }

        function changeCity()
        {
            cmbArea.options.length = 0;
            if(cmbCity.selectedIndex == -1)return;
            var item = cmbCity.options[cmbCity.selectedIndex].obj;
            for(var i=0; i<item.typeList.length; i++)
            {
                cmbAddOption(cmbArea, item.typeList[i], null);
            }
            cmbSelect(cmbArea, defaultArea);
        }
        function changeProvince()
        {
            cmbCity.options.length = 0;
            cmbCity.onchange = null;
            if(cmbProvince.selectedIndex == -1)return;
            var item = cmbProvince.options[cmbProvince.selectedIndex].obj;
            for(var i=0; i<item.majorList.length; i++)
            {
                cmbAddOption(cmbCity, item.majorList[i].major, item.majorList[i]);
            }
            cmbSelect(cmbCity, defaultCity);
            changeCity();
            cmbCity.onchange = changeCity;
        }

        for(var i=0; i<selectList.length; i++)
        {
            cmbAddOption(cmbProvince, selectList[i].norm, selectList[i]);
        }
        cmbSelect(cmbProvince, defaultProvince);
        changeProvince();
        cmbProvince.onchange = changeProvince;
    }

参考:http://m.blog.csdn.net/article/details?id=39229451

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值