刷新的时候,第一个省份8个市区都跳出来,要选第二个开始才能生效
来源:7-8 编程练习
慕标0359786
2019-12-20 14:53:14
function address(){
var sheng=document.getElementById("sheng");
var shi=document.getElementById("shi");
var shengArray=["北京市","天津市","河北省","河南省"];
var shiArray=["朝阳区","西城区","西青区","武清区","石家庄","邯郸市","郑州市","开封市"];
selectAdd(sheng,shengArray);
selectAdd(shi,shiArray);
}
function selectAdd(obj,name){
for(var i in name){
obj.options.add(new Option(name[i],name[i]));
}
}
function linkage(){
var sheng=document.getElementById("sheng");
var shi=document.getElementById("shi");
//获取到省份的value值
var sheng1 = sheng.value;
//创建城区数组
var beijinArray=["朝阳区","西城区"];
var tianjinArray=["西青区","武青区"];
var hebeiArray=["石家庄","邯郸市"];
var henanArray=["郑州市","开封市"];
//判断省份
if(sheng1=="北京市"){
shi.options.length=0;
selectAdd(shi,beijinArray);
}else if(sheng1=="天津市"){
shi.options.length=0;
selectAdd(shi,tianjinArray);
}else if(sheng1=="河北省"){
shi.options.length=0;
selectAdd(shi,hebeiArray);
}else{
shi.options.length=0;
selectAdd(shi,henanArray);
}
}<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="index.js"></script> </head> <body onload="address()"> <form> 省份: <select name="sheng" id="sheng" onchange="linkage()"></select> 市/区: <select name="shi" id="shi" onchange="linkage()"></select> </form> </body> </html>
1回答
同学你好,onchange事件表示内容发生改变的时候会触发该事件,所以当加载页面后,一级菜单初始值为北京市,再点击北京市,内容没有发生改变,所以不会触发onchange事件,也就不会执行linkage()函数。
所以建议当加载页面完就加载address()和linkage()函数。保证页面加载完就可以获取到省份的值,来进行二级联动的判断。
具体如下:

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
相似问题
回答 1
回答 1