美文网首页
下拉菜单三级联动的实现

下拉菜单三级联动的实现

作者: 讲武德的年轻人 | 来源:发表于2019-09-25 11:13 被阅读0次
// 定义省市区,分别用一维二维三维数组实现,各级省份、城市、区域和value的值对应
var provinceArr = ['上海','江苏','河北'];
var cityArr = [
    ['上海市'],
    ['苏州市','南京市','扬州市'],
    ['石家庄','秦皇岛','张家口']
];
var countryArr = [
    [
        ['黄浦区','静安区','长宁区','浦东区']
    ],
    [
        ['虎丘区','吴中区','相城区','姑苏区','吴江区'],
        ['玄武区','秦淮区','建邺区','鼓楼区','浦口区'],
        ['邗江区','广陵区','江都区']
    ],
    [
        ['长安区','桥西区','新华区','井陉矿区'],
        ['海港区','山海关区','北戴河区','抚宁区'],
        ['桥东区','桥西区','宜化区','下花园区']
    ]
];
// 定义省份的下拉菜单
function createOption(obj,data){
    for (var i in data){
        var op = new Option(data[i],i);
        obj.options.add(op);
    }
}
var province = document.getElementById('province');
createOption(province,provinceArr);
// 选择省份后,定义市级下拉菜单
// onchange 事件会在域的内容改变时发生。
var city = document.getElementById('city');
province.onchange = function(){
    city.options.length = 0;
    createOption(city,cityArr[province.value]);
    // -----新增代码-----
    if(province.value >=0){
        city.onchange();
    }else{
        country.options.length = 0;
    }
    // -----------------
};
// 选择城市后,自动生成对应区域的下拉菜单
var country = document.getElementById('country');
city.onchange = function(){
    country.options.length = 0;
    createOption(country,countryArr[province.value][city.value]);
};
效果

但是怎么取到用户选择的值呢?这个更重要!

相关文章

网友评论

      本文标题:下拉菜单三级联动的实现

      本文链接:https://www.haomeiwen.com/subject/pwxkyctx.html