• js实现省市县三级联动


    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>js实现省市县--三级联动</title>
    </head>
    <body>
        <div>
            选择省份:
            <select style=" 100px;" id="pre" onchange="shengfen(this);">
                <option value="-1" selected="selected">---请选择---</option>
            </select>
            选择市区:
            <select style=" 100px;" id="city" onchange="shiqu(this)">
                <option selected="selected">---请选择---</option>
            </select>
            选择县城:
            <select style=" 100px;" id="area">
                <option selected="selected">---请选择---</option>
            </select>
        </div>
    
        <script>
            //声明省
            var pres = ["湖南省", "广东省", "河北省",'江西省','海南省','湖北省']; //直接声明Array
            //声明市
            var cities = [
                ["长沙市", "岳阳市", "吉首市"],  //湖南省内的市区
                ["深圳市", "广州市"],      //广东省内的市区
                ["石家庄市", "李家庄2市"], //河北省内的市区
            ];
            var areas = [
                    [
                        ["长沙县1", "长沙县2", "长沙县3"], //长沙市内的县城
                        ["岳阳县1", "岳阳县1", "岳阳县1"], //岳阳县内的县城
                        ["花垣县", "龙潭县", "龙山县",'秀山县']   //吉首市内的县城
                    ],
                    [
                        ["深圳县1", "深圳县2", "深圳县3"], //*******
                        ["广州县1", "广州县2", "广州县3"]
                    ],
                    [
                        ["石家庄县1", "石家庄县2"],
                        ["李家庄县1", "李家庄县2"]
                    ]
            ]
            //设置一个省的公共下标
            var pIndex = -1;
            var preEle = document.getElementById("pre");
            var cityEle = document.getElementById("city");
            var areaEle = document.getElementById("area");
    
            //先设置省的值
            for (var i = 0; i < pres.length; i++) {
                //声明option.<option value="pres[i]">Pres[i]</option>
                var op = new Option(pres[i], i);
                //添加
                preEle.options.add(op);
            }
            //省份方法
            function shengfen(obj) {
                //alert("省份的下标:"+obj.value);//省份下标,从0开始
                if (obj.value == -1) {
                    cityEle.options.length = 0;
                    areaEle.options.length = 0;
                }
                //alert("this:" + cityEle.options.length);
    
                //获取值
                var sheng = obj.value; //获取省份的下标
                //alert("省份的下标:"+sheng);
                pIndex = obj.value;
                //获取ctiry
                var cs = cities[sheng];//把省份的下标放入市区的数组
                
                var as = areas[sheng][0];//获取默认区
                //先清空市
                cityEle.options.length = 0;
                areaEle.options.length = 0;
                for (var i = 0; i < cs.length; i++) {
                    var op = new Option(cs[i], i);
                    cityEle.options.add(op);
                }
                for (var i = 0; i < as.length; i++) {
                    var op = new Option(as[i], i);
                    areaEle.options.add(op);
                }
            }
            //市区方法
            function shiqu(obj) {
                var shi = obj.selectedIndex;
                var as = areas[pIndex][shi];
                areaEle.options.length = 0;
                for (var i = 0; i < as.length; i++) {
                    var op = new Option(as[i], i);
                    areaEle.options.add(op);
                }
            }
        </script>
    </body>
    </html>
  • 相关阅读:
    Linux学习总结(18)——Linux使用init命令关机、重启、切换模式
    iOS autorelease使用详解
    iOS xib的使用详解
    iOS ASI--缓存
    iOS ASI--其他用法
    iOS ASI--管理多个请求
    iOS ASI--文件上传
    iOS ASI--文件下载
    iOS ASI--POST请求
    iOS ASI--GET请求
  • 原文地址:https://www.cnblogs.com/threeblue/p/12768551.html
Copyright © 2020-2023  润新知