HTML:js应用---下拉框联动(省市二级下拉框联动,含代码)

总体思路

省市二级下拉框联动包括省份下拉框和市级下拉框。我们需要做的是加载出相应省份选项,并且点击一省份时市级下拉框显示该省份下的市,简单来说就是数组的存储与跳转。

效果图展示

具体思路

省份下拉框

1.定义存放所有省份数据的数组,可任意加想要的省份

var provinceList =["==请选择==","北京市","江西省","湖北省"];

2.定义加载省份下拉框的方法,具体思路放在代码里。

//定义加载省份下拉框的方法loadProvince
    function loadProvince(){    
        //遍历provinceList数组中的元素
        //动态增加选项option到下拉框sltProvince中
        //1.1获得省份下拉框对象
        var sltProvince = document.getElementById("sltProvince");
        //1.2设置省份下拉框下拉选项的个数
        sltProvince.length = provinceList.length;
        //1.3遍历provinceList数组
        for(var i=0;i<provinceList.length;i++){
            //设置下拉框选项显示的内容
            sltProvince.options[i].text= provinceList[i];
        }
    }

市级下拉框

定义存放所有市数据的二维数组(二维数组的作用是需要与省份联动),数组内的数据根据省份数组添加。

 
    var cityList=[
                    ["==请选择=="],
                    ["东城区","西城区","朝阳区"],
                    ["南昌市","九江市","上饶市"],
                    ["武汉市","荆州市"],                
                ];

联动

定义根据当前选择的省份,加载对应市下拉框数据的方法(下列代码每个步骤都有说明)。

function loadCity(){
        //1.获得所选择的省份选项序号
        var idx = document.getElementById("sltProvince").selectedIndex;

        //2.从cityList数组中,取idx行所在的数据
        var cityData = cityList[idx];

        //3.遍历cityData中的数据,载入到市下拉框sltCity中
        var sltCity = document.getElementById("sltCity");
        sltCity.length = cityData.length;
        for(var i=0;i<cityData.length;i++){
            sltCity.options[i].text = cityData[i];
        }
    }

总体代码

<html>
    <head> <title>js应用---下拉框联动</title></head>
    <body>
        <select    id = "sltProvince"   onchange="loadCity()">
            <!---  <option>北京市</option>
            onchange 1.下拉框层次改变
                     2.输入框
            -->  
        </select>
        <select    id = "sltCity">
        </select>
    </body>
</html>
<script>
    //定义存放所有省份数据的数组
    var provinceList =["==请选择==","北京市","江西省","湖北省"];

    //定义存放所有市数据的二维数组
    var cityList=[
                    ["==请选择=="],
                    ["东城区","西城区","朝阳区"],
                    ["南昌市","九江市","上饶市"],
                    ["武汉市","荆州市"],                
                ];


    //定义加载省份下拉框的方法loadProvince
    function loadProvince(){    
        //遍历provinceList数组中的元素
        //动态增加选项option到下拉框sltProvince中
        //1.1获得省份下拉框对象
        var sltProvince = document.getElementById("sltProvince");
        //1.2设置省份下拉框下拉选项的个数
        sltProvince.length = provinceList.length;
        //1.3遍历provinceList数组
        for(var i=0;i<provinceList.length;i++){
            //设置下拉框选项显示的内容
            sltProvince.options[i].text= provinceList[i];
        }
    }

    //定义根据当前选择的省份,加载对应市下拉框数据的方法
    function loadCity(){
        //1.获得所选择的省份选项序号
        var idx = document.getElementById("sltProvince").selectedIndex;

        //2.从cityList数组中,取idx行所在的数据
        var cityData = cityList[idx];

        //3.遍历cityData中的数据,载入到市下拉框sltCity中
        var sltCity = document.getElementById("sltCity");
        sltCity.length = cityData.length;
        for(var i=0;i<cityData.length;i++){
            sltCity.options[i].text = cityData[i];
        }
    }

    //执行加载省份下拉框的方法
    loadProvince();
</script>
    

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在 Element UI 中,可以通过 `el-select` 和 `el-option` 组件来实现下拉框联动,具体实现方式如下: 1. 在 HTML 中定义两个 `el-select` 组件,分别对应一级和二级下拉框,同时为它们绑定 `v-model` 指令,以便获取选中的值。 2. 在一级下拉框中,为每个选项绑定一个 `change` 事件,当选项被选中时触发该事件。 3. 在 `change` 事件处理函数中,根据当前选中的值,动态生成二级下拉框的选项,并将其赋值给二级下拉框的 `options` 属性。 代码示例: ```html <template> <div> <el-select v-model="selectedFirst" @change="handleChangeFirst" placeholder="请选择一级选项"> <el-option v-for="item in firstOptions" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> <el-select v-model="selectedSecond" placeholder="请选择二级选项"> <el-option v-for="item in secondOptions" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </div> </template> <script> export default { data() { return { selectedFirst: '', selectedSecond: '', firstOptions: [ {label: '选项1', value: '1'}, {label: '选项2', value: '2'}, {label: '选项3', value: '3'} ], secondOptions: [] } }, methods: { handleChangeFirst() { // 根据一级选项动态生成二级选项 switch (this.selectedFirst) { case '1': this.secondOptions = [ {label: '选项1-1', value: '1-1'}, {label: '选项1-2', value: '1-2'}, {label: '选项1-3', value: '1-3'} ] break case '2': this.secondOptions = [ {label: '选项2-1', value: '2-1'}, {label: '选项2-2', value: '2-2'}, {label: '选项2-3', value: '2-3'} ] break case '3': this.secondOptions = [ {label: '选项3-1', value: '3-1'}, {label: '选项3-2', value: '3-2'}, {label: '选项3-3', value: '3-3'} ] break default: this.secondOptions = [] } // 清空二级选项的值 this.selectedSecond = '' } } } </script> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杂杂烩本烩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值