请老师帮忙看一下哪里有问题,谢谢。。。。。
来源: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回答
同学你好,var pvalue=province.value;多了个括号,导致获取不到省份,同学把括号去掉即可
建议同学在address()方中法调用linkage(),当加载页面完就加载address()和linkage()函数。保证页面加载完就可以获取到省份的值,来进行二级联动的判断。否则会出现一级菜单初始值为北京市,再点击北京市,内容没有发生改变,所以不会触发onchange事件,也就不会执行linkage()函数,第一次预览界面,北京市后面会出现所有的城市。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题