javascript实现下拉选框联动

    <select id="province" onchange="selectCity(this)">
            <option>--选择省市--</option>
            <option>北京市</option>
            <option>河北省</option>
            <option>辽宁省</option>
            <option>山东省</option>
        </select>

onchange事件是在表单项的value值发生变化后触发执行,作用在input、select、textarea元素上
例:下拉选框值改变的时候触发onchange事件
表单的name和value在提交时会传给服务器
select元素以name为key,option的value值或option的内容提交

var data = {
"北京市": ["海淀区","朝阳区","丰台区"],
"河北省": ["石家庄","唐山","秦皇岛"],
"辽宁省": ["沈阳","大连","鞍山"],
"山东省": ["青岛","济南","烟台"]
}
var p3={
"name":"张飞",
"age":18
}
alert(p3.name);
alert(data.河北省);
alert(data["河北省"]);

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>二级联动下拉框</title>
<!--
data:
    "北京市": ["海淀区","朝阳区","丰台区"]
    "河北省": ["石家庄","唐山","秦皇岛"]
    "辽宁省": ["沈阳","大连","鞍山"]
    "山东省": ["青岛","济南","烟台"]
-->
<!--引入jquery的js库-->
<script>

    /* --通过js实现二级联动下拉框-- */
    function getCountry(){
        //1.获取select元素
        var sele=document.getElementsByName("country")[0];
        //2.获取select元素的value值
        document.getElementById("result").innerHTML=sele.value;
        var img=document.getElementsByTagName("img")[0];
        if(sele.value=="日本"){
            img.src="img/jp.jpg";
        }
        else if(sele.value=="中国"){
            img.src="img/ch.jpg";
        }
        else if(sele.value=="美国"){
            img.src="img/am.jpg";
        }
        else{
            img.src="";
        }
    }

    var data = {
        "北京市": ["海淀区","朝阳区","丰台区"],
        "河北省": ["石家庄","唐山","秦皇岛"],
        "辽宁省": ["沈阳","大连","鞍山"],
        "山东省": ["青岛","济南","烟台"]
    }


    function selectCity(thisobj){
        //1.先获取用户选中的省份
         var prov=thisobj.value;
        //2.根据省份获取省份对应的城市数据
        var citys=data[prov];
        //3.遍历数组中的城市,将城市变为option选项
        var citySele=document.getElementById("city");
        //在添加当前省份对应的城市到select框之前应该先清空其他成分的选项,再进行添加
        citySele.innerHTML="<option>--选择城市--</option>";
        for(var i=0;i<citys.length;i++){
            var opt=document.createElement("option");
            opt.innerHTML=citys[i];
            //添加到第二个城市的下拉选框中
            citySele.appendChild(opt);
        }

    }
    
</script>
<!-- 
    1.让用户先选择一个省份, 获取用户选中的省份 北京市

    2.根据用户选中的省份, 获知省份下面的所有城市(数组)

    3.将该省份下面的所有城市 作为option选项 填充到第二个select列表(城市)中
 -->
<!-- 
js实现注意问题: 
    ie10以下的浏览器不支持 select,table上的innerHTML属性
    删除option时,由于删除后,options长度发生了变化,所以直接用for循环会有漏删的情况,可以由后向前删除,可以避免这样的问题
-->
</head>

<body>
    
    <select name="country" onchange="getCountry()"  >
        <option value="none">--选择国家--</option>
        <option value="中国">中国</option>
        <option value="美国">美国</option>
        <option value="日本">日本</option>
    </select>
    <br><br>
    <hr/>




    
    <br>
    <div id="seleDiv">
        
        <select id="province" onchange="selectCity(this)">
            <option>--选择省市--</option>
            <option>北京市</option>
            <option>河北省</option>
            <option>辽宁省</option>
            <option>山东省</option>
        </select>
        
        <select id="city">
            <option>--选择城市--</option>
        </select>
    </div>
    <br/>
    <h2>选择的国家是</h2>
    <div id="result" style="color:red;"></div>
    <img src="" alt="还未选择国家" style="width:250px;height: 250px;">
</body>

</html>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • <!DOCTYPE HTML> 二级联动下拉框 --选择国家-- 中国 美国 日本 选择的国家是
    ssttIsme阅读 1,378评论 0 0
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,378评论 2 17
  • 很多朋友一直问怎么选基金,今天就说一下选基金的简单方法。具体可以结合天天基金网站来选择。 首先,看基金业绩。通...
    清风伴斜阳阅读 3,434评论 0 0
  • 我 的 爱 情 淋了雨 你 的 思 念 蒙了霜 散 落 的 时 光 你 我 洗 礼 似火 的 骄 阳 你 我 滋 ...
    红学砖家阅读 968评论 3 8
  • 黄巷:用“黄”姓命名或是对儒者最大的肯定 从衣锦坊折返回南后街中轴线,我们又进入了与其相对的黄巷,一位黄姓跑友自豪...
    虹涛拍岸阅读 3,328评论 3 2