下拉框数据联动

联动

无聊玩一下
直接上代码

要做的联动

<body>
    国家:
    <select id="gj"></select>
    省:
    <select id="cs"></select>
    市:
    <select id="s"></select>
</body>

准备数据

		//包含有国家名称的数组
        var guojia = ["--请选择--", "中国", "尼泊尔", "美国", "韩国", "德国"];
        //包含有对应省的数组
        var shengshi = [
            ["--请选择--"],
            ["--请选择--", "湖北", "湖南", "河北", "河南", "吉林", "黑龙江", "乌鲁木齐"],/*中国*/
            ["--请选择--", "比拉德讷格尔", "贾纳克布尔", "黑道达", "博卡拉"],/*尼泊尔*/
            ["--请选择--", "纽约", "洛杉矶", "旧金山", "芝加哥", "休斯顿"],/*,美国*/
            ["--请选择--", "首尔", "釜山", "仁川", "春川", "蔚山"],/*韩国*/
            ["--请选择--", "柏林", "汉堡市", "北莱茵-威斯特法伦州", "萨尔州"]/*德国*/
        ];
        //包含对应市的数组
        var dijishi = [
            [["--请选择--"]],
            [
                ["--请选择--"],
                ["--请选择--","武汉", "黄石", "潜江", "仙桃"],/*湖北*/
                ["--请选择--", "长沙", "株洲", "湘潭"],/*湖南*/
                ["--请选择--", "石家庄", "秦皇岛", "唐山"],/*河北*/
                ["--请选择--", "郑州", "开封", "新乡"],/*河南*/
                ["--请选择--", "长春", "辽源", "白城"],/*吉林*/
                ["--请选择--", "哈尔滨", "大庆", "伊春"],/*黑龙江*/
                ["--请选择--", "哈密", "博乐", "昌吉"],/*乌鲁木齐*/
            ],/*中国*/
        ];
        //因为嫌数据输入的烦,就没添加别的国家的市

写添加数据的方法

添加国家

        function f_gj() {
        	//把存有国家数据的数组循环一遍
            for (var i = 0; i < guojia.length; i++) {
                //创建一个option
                var o = document.createElement('option');
                o.text = guojia[i];//设置显示的值
                o.value = guojia[i];//设置value
                //把创建的option添加到下拉框中去
                document.getElementById("gj").add(o);
            }
        }

添加省和市

        //循环添加城市
        function f_cs() {
            //获取城市选项的长度
            var index = document.getElementById("cs").length;
            //循环删除所有的选项
            for (var j = index-1; j > -1; j--) {
            	//移除下拉框对象中索引为j的选项
                document.getElementById("cs").remove(j);
            }
//如果不做以上操作下拉框中的选项会随着函数的触发只增不减

            //获取国家下拉框选中的值对应的索引
            var xiabiao1 = document.getElementById("gj").selectedIndex;
            //循环一遍对应省的数据
            for (var i = 0; i < shengshi[xiabiao1].length; i++) {
                //创建一个option
                var o = document.createElement('option');
                o.text = shengshi[xiabiao1][i];//设置显示的值
                o.value = shengshi[xiabiao1][i];//设置value
                document.getElementById("cs").add(o);//添加
            }
        }

        //循环添加市
        function f_s() {
            //获取市选项的长度
            var index = document.getElementById("s").length;
            //循环删除所有的选项
            for (var j = index - 1; j > -1; j--) {
                document.getElementById("s").remove(j);//移除
            }

            //国家下拉框选中值的索引
            var xiabiao1 = document.getElementById("gj").selectedIndex;
            //省下拉框选中值的索引
            var xiabiao2 = document.getElementById("cs").selectedIndex;
            //循环一遍对应市的数据
            for (var i = 0; i < dijishi[xiabiao1][xiabiao2].length; i++) {
                //创建一个option
                var o = document.createElement('option');
                o.text = dijishi[xiabiao1][xiabiao2][i];//设置显示的值
                o.value = dijishi[xiabiao1][xiabiao2][i];//设置value
                document.getElementById("s").add(o);//添加
            }
        }

执行方法

        //加载事件
        window.onload = function () {
            f_gj();//执行添加国家的函数
            f_cs();//执行添加省的函数
            f_s();//执行添加市的函数
            //以上是为了加载出“--请选择--”
            
            //当国家下拉框的值改变的时候重新加载省下拉框的值
            document.getElementById("gj").onchange = f_cs;
            //当省的值改变的时候重新加载市的值
            document.getElementById("cs").onchange = f_s;
        }

完整代码

    <script type="text/javascript">
        //包含有国家名称的数组
        var guojia = ["--请选择--", "中国", "尼泊尔", "美国", "韩国", "德国"];
        //包含有对应省市的数组
        var shengshi = [
            ["--请选择--"],
            ["--请选择--", "湖北", "湖南", "河北", "河南", "吉林", "黑龙江", "乌鲁木齐"],/*中国*/
            ["--请选择--", "比拉德讷格尔", "贾纳克布尔", "黑道达", "博卡拉"],/*尼泊尔*/
            ["--请选择--", "纽约", "洛杉矶", "旧金山", "芝加哥", "休斯顿"],/*,美国*/
            ["--请选择--", "首尔", "釜山", "仁川", "春川", "蔚山"],/*韩国*/
            ["--请选择--", "柏林", "汉堡市", "北莱茵-威斯特法伦州", "萨尔州"]/*德国*/
        ];
        //包含对应地级市的数组
        var dijishi = [
            [["--请选择--"]],
            [
                ["--请选择--"],
                ["--请选择--","武汉", "黄石", "潜江", "仙桃"],/*湖北*/
                ["--请选择--", "长沙", "株洲", "湘潭"],/*湖南*/
                ["--请选择--", "石家庄", "秦皇岛", "唐山"],/*河北*/
                ["--请选择--", "郑州", "开封", "新乡"],/*河南*/
                ["--请选择--", "长春", "辽源", "白城"],/*吉林*/
                ["--请选择--", "哈尔滨", "大庆", "伊春"],/*黑龙江*/
                ["--请选择--", "哈密", "博乐", "昌吉"],/*乌鲁木齐*/
            ],/*中国*/
        ];
        //循环添加国家
        function f_gj() {
            for (var i = 0; i < guojia.length; i++) {
                //创建一个option
                var o = document.createElement('option');
                o.text = guojia[i];//设置显示的值
                o.value = guojia[i];//设置value
                document.getElementById("gj").add(o);//添加选项到下拉框
            }
        }

        //循环添加城市
        function f_cs() {
            //获取城市选项的长度
            var index = document.getElementById("cs").length;
            //循环删除所有的选项
            for (var j = index-1; j > -1; j--) {
                document.getElementById("cs").remove(j);
            }
            //国家下拉框选中值的索引
            var xiabiao1 = document.getElementById("gj").selectedIndex;
            for (var i = 0; i < shengshi[xiabiao1].length; i++) {
                //创建一个option
                var o = document.createElement('option');
                o.text = shengshi[xiabiao1][i];//设置显示的值
                o.value = shengshi[xiabiao1][i];//设置value
                document.getElementById("cs").add(o);
            }
        }

        //循环添加市
        function f_s() {
            //获取市选项的长度
            var index = document.getElementById("s").length;
            //循环删除所有的选项
            for (var j = index - 1; j > -1; j--) {
                document.getElementById("s").remove(j);
            }

            //国家下拉框选中值的索引
            var xiabiao1 = document.getElementById("gj").selectedIndex;
            //城市下拉框选中值的索引
            var xiabiao2 = document.getElementById("cs").selectedIndex;
            for (var i = 0; i < dijishi[xiabiao1][xiabiao2].length; i++) {
                //创建一个option
                var o = document.createElement('option');
                o.text = dijishi[xiabiao1][xiabiao2][i];//设置显示的值
                o.value = dijishi[xiabiao1][xiabiao2][i];//设置value
                document.getElementById("s").add(o);
            }
        }

        //加载事件
        window.onload = function () {
            f_gj();//执行添加国家的函数
            f_cs();//执行添加省的函数
            f_s();//执行添加市的函数
            document.getElementById("gj").onchange = f_cs;//当国家下拉框的值改变的时候改变省下拉框的值
            document.getElementById("cs").onchange = f_s;//当省的值改变的时候改变市的值
        }

    </script>
<body>
    国家:
    <select id="gj"></select>
    省:
    <select id="cs"></select>
    市:
    <select id="s"></select>
</body>

猜你喜欢

转载自blog.csdn.net/qq_41613385/article/details/83475959