请老师帮忙看一下哪里有问题,谢谢。。。。。

来源:7-8 编程练习

Joey_yxy

2020-06-21 18:02:34

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="ceshi_index.js"></script>
</head>
<body onload="address()">
    <form>
    省份:
    <!--  请在此补充代码 -->
    <select id="province" name="province" onchange="linkage()"></select>
    市/区:
    <!--  请在此补充代码 -->
    <select id="city" name="city" ></select>
    </form>
</body>
</html>
function address(){
	var provinceArr=["北京市","河北省","天津市","河南省"];
	var provinceValue=[0,1,2,3];
	var cityArr=["朝阳区","西城区","石家庄","邯郸市","西青区","武清区","郑州市","开封市"];
	var cityValue=[1,2,3,4,5,6,7,8];
	var province=document.getElementById("province");
	var city=document.getElementById("city");
	selectAdd(province,provinceArr,provinceValue);
	selectAdd(city,cityArr,cityValue);
}
function selectAdd(obj,name,value){
	/*请在此补充代码*/ 
	for(var i=0;i<name.length;i++){
		obj.options.add(new Option(name[i],value[i]));
	}
}
function linkage(){
    var provinceArr=["北京市","河北省","天津市","河南省"];
    var provinceValue=[0,1,2,3];
    var cityArr = ["朝阳区","西城区","石家庄市","邯郸市","武清区","河东区","郑州市","开封市"];
    var cityValue=[1,2,3,4,5,6,7,8];
    var province = document.getElementById("province");
    var city = document.getElementById("city");
    var pvalue=province.value();
    var aCity,aCityValue;
   
    aCity= getCity(pvalue,cityArr);
    aCityValue=getCity(pvalue,cityValue);
    city.options.length=0;
    selectAdd(city,aCity,aCityValue);	  
}
function getCity(num,arr){
	num=num*2;
	var aCity= [arr[num],arr[num+1]];
	return aCity;
}


写回答

1回答

好帮手慕阿园

2020-06-21

同学你好,var pvalue=province.value;多了个括号,导致获取不到省份,同学把括号去掉即可

http://img.mukewang.com/climg/5eef418e09e9870305240131.jpg

 建议同学在address()方中法调用linkage(),当加载页面完就加载address()和linkage()函数。保证页面加载完就可以获取到省份的值,来进行二级联动的判断。否则会出现一级菜单初始值为北京市,再点击北京市,内容没有发生改变,所以不会触发onchange事件,也就不会执行linkage()函数,第一次预览界面,北京市后面会出现所有的城市。

http://img.mukewang.com/climg/5eef419c0979c46003910127.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


1
hoey_yxy
h 啊是的是的,谢谢您!
h020-06-21
共1条回复

0 学习 · 16556 问题

查看课程