我想做选择地址的两个select 分别是省和城市 但是运行网页的时候城市的select没有添加选项 请问有什么问题啊??js
var old ;
function addCities(){
var nowp = document.getElementById("province");
var nowc = document.getElementById("city");
var i;
val val = nowp.options[nowp.selectedIndex].value; //得到所选省的 value
if(old==nowp.selectedIndex){ //如果所选省没有改变 则退出函数
break;
}
for(i=1; i<nowc.length; i++){ //删除原来的选项 从第二项开始删
nowc.remove(i);
}
old=nowp.selectedIndex;
switch(val){ //根据新的省 添加新选项
case "": break;
case "北京": nowc.add(new Option("不限","不限")); nowc.add(new Option("东城区","东城区"));
nowc.add(new Option("西城区","西城区")); nowc.add(new Option("崇文区","崇文区"));
break;
case "上海": nowc.add(new Option("不限","不限")); nowc.add(new Option("黄浦区","黄浦区"));
nowc.add(new Option("卢湾区","卢湾区")); nowc.add(new Option("徐汇区","徐汇区"));
break;
case "天津": nowc.add(new Option("不限","不限")); nowc.add(new Option("和平区","和平区"));
nowc.add(new Option("河东区","河东区")); nowc.add(new Option("河西区","河西区"));
break;
case "重庆": nowc.add(new Option("不限","不限")); nowc.add(new Option("万州区","万州区"));
nowc.add(new Option("涪陵区","涪陵区")); nowc.add(new Option("渝中区","渝中区"));
break;
case "黑龙江":nowc.add(new Option("不限","不限")); nowc.add(new Option("哈尔滨","哈尔滨"));
html:
<select id="province" onchange="addCities()" >
<option value="">选择省份</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="天津">天津</option>
<option value="重庆">重庆</option>
</select>
<select id="city">
<option value="">选择城市</option>
</select>
var old ;
function addCities(){
var nowp = document.getElementById("province");
var nowc = document.getElementById("city");
var i;
val val = nowp.options[nowp.selectedIndex].value; //得到所选省的 value
if(old==nowp.selectedIndex){ //如果所选省没有改变 则退出函数
break;
}
for(i=1; i<nowc.length; i++){ //删除原来的选项 从第二项开始删
nowc.remove(i);
}
old=nowp.selectedIndex;
switch(val){ //根据新的省 添加新选项
case "": break;
case "北京": nowc.add(new Option("不限","不限")); nowc.add(new Option("东城区","东城区"));
nowc.add(new Option("西城区","西城区")); nowc.add(new Option("崇文区","崇文区"));
break;
case "上海": nowc.add(new Option("不限","不限")); nowc.add(new Option("黄浦区","黄浦区"));
nowc.add(new Option("卢湾区","卢湾区")); nowc.add(new Option("徐汇区","徐汇区"));
break;
case "天津": nowc.add(new Option("不限","不限")); nowc.add(new Option("和平区","和平区"));
nowc.add(new Option("河东区","河东区")); nowc.add(new Option("河西区","河西区"));
break;
case "重庆": nowc.add(new Option("不限","不限")); nowc.add(new Option("万州区","万州区"));
nowc.add(new Option("涪陵区","涪陵区")); nowc.add(new Option("渝中区","渝中区"));
break;
case "黑龙江":nowc.add(new Option("不限","不限")); nowc.add(new Option("哈尔滨","哈尔滨"));
html:
<select id="province" onchange="addCities()" >
<option value="">选择省份</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="天津">天津</option>
<option value="重庆">重庆</option>
</select>
<select id="city">
<option value="">选择城市</option>
</select>
改了,你那里有些问题,红色部分就是跟你的区别。
<script type='text/javascript'>
var old;
function addCities(){alert("1");
var nowp = document.getElementById("province");
var nowc = document.getElementById("city");
var i;
var val = nowp.options[nowp.selectedIndex].value; //得到所选省的 value
if (old == nowp.selectedIndex) { //如果所选省没有改变 则退出函数
return;//这里没有循环不能用break;
}
for(i=1; i<nowc.length; i++){ //删除原来的选项 从第二项开始删
nowc.remove(i);
}
old=nowp.selectedIndex;
switch(val){ //根据新的省 添加新选项
case "": break;
case "北京": nowc.add(new Option("不限","不限")); nowc.add(new Option("东城区","东城区"));
nowc.add(new Option("西城区","西城区")); nowc.add(new Option("崇文区","崇文区"));
break;
case "上海": nowc.add(new Option("不限","不限")); nowc.add(new Option("黄浦区","黄浦区"));
nowc.add(new Option("卢湾区","卢湾区")); nowc.add(new Option("徐汇区","徐汇区"));
break;
case "天津": nowc.add(new Option("不限","不限")); nowc.add(new Option("和平区","和平区"));
nowc.add(new Option("河东区","河东区")); nowc.add(new Option("河西区","河西区"));
break;
case "重庆": nowc.add(new Option("不限","不限")); nowc.add(new Option("万州区","万州区"));
nowc.add(new Option("涪陵区","涪陵区")); nowc.add(new Option("渝中区","渝中区"));
break;
case "黑龙江":nowc.add(new Option("不限","不限")); nowc.add(new Option("哈尔滨","哈尔滨"));break;}}
</script>
if (old == nowp.selectedIndex) { //如果所选省没有改变 则退出函数
break; }
这里的改成returnval val = nowp.options[nowp.selectedIndex].value;
这里定义是var val
case "黑龙江":nowc.add(new Option("不限","不限")); nowc.add(new Option("哈尔滨","哈尔滨"));
这里结尾少了个break;跟两个}}
function addCities()
{
var nowp = document.getElementById("province");
var nowc = document.getElementById("city");
var i;
var val = nowp.value;
if (old == nowp.selectedIndex)
{ // 如果所选省没有改变 则退出函数
return;
}
for (i = 1; i < nowc.length; i++)
{ // 删除原来的选项 从第二项开始删
nowc.remove(i);
}
old = nowp.selectedIndex;
switch (val)
{ // 根据新的省 添加新选项
case "" :
break;
case "北京" :
nowc.add(new Option("不限", "不限"));
nowc.add(new Option("东城区", "东城区"));
nowc.add(new Option("西城区", "西城区"));
nowc.add(new Option("崇文区", "崇文区"));
break;
case "上海" :
nowc.add(new Option("不限", "不限"));
nowc.add(new Option("黄浦区", "黄浦区"));
nowc.add(new Option("卢湾区", "卢湾区"));
nowc.add(new Option("徐汇区", "徐汇区"));
break;
case "天津" :
nowc.add(new Option("不限", "不限"));
nowc.add(new Option("和平区", "和平区"));
nowc.add(new Option("河东区", "河东区"));
nowc.add(new Option("河西区", "河西区"));
break;
case "重庆" :
nowc.add(new Option("不限", "不限"));
nowc.add(new Option("万州区", "万州区"));
nowc.add(new Option("涪陵区", "涪陵区"));
nowc.add(new Option("渝中区", "渝中区"));
break;
case "黑龙江" :
nowc.add(new Option("不限", "不限"));
nowc.add(new Option("哈尔滨", "哈尔滨"));
}
}