二级下拉框联动问题

qeqeewq 2014-02-22 11:41:01
下面这段代码是省份城市二级联动下拉框代码,怎样给城市像省份那样附一个数值,使二级下拉框最终得到的值是数值而不是城市名称.
<head>
<script language="JavaScript" type="text/javascript">
//定义了城市的二维数组,里面的顺序跟省份的顺序是相同的。通过selectedIndex获得省份的下标值来得到相应的城市数组
var city=[
["北京","天津","上海","重庆"],
["南京","苏州","南通","常州"],
["福州","福安","龙岩","南平"],
["广州","潮阳","潮州","澄海"],
["兰州","白银","定西","敦煌"]
];
function getCity(){
//获得省份下拉框的对象
var sltProvince=document.form1.province;
//获得城市下拉框的对象
var sltCity=document.form1.city;
//得到对应省份的城市数组
var provinceCity=city[sltProvince.selectedIndex - 1];
//清空城市下拉框,仅留提示选项
sltCity.length=1;
//将城市数组中的值填充到城市下拉框中
for(var i=0;i<provinceCity.length;i++){
sltCity[i+1]=new Option(provinceCity[i],city[i]);}
}
</script>
</head>
<body>
<form METHOD=POST ACTION="" name="form1">
<select NAME="province" onChange="getCity()">
<option VALUE="0">请选择所在省份 </option>
<option VALUE="1">直辖市 </option>
<option VALUE="2">江苏省 </option>
<option VALUE="3">福建省 </option>
<option VALUE="4">广东省 </option>
<option VALUE="5">甘肃省 </option>
</select>
<select NAME="city">
<option VALUE="0">请选择所在城市 </option>
</select>
</form>
</body>
...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
嘻哈大咖秀 2014-02-23
  • 打赏
  • 举报
回复
<head> 
	<script language="JavaScript" type="text/javascript"> 
//定义了城市的二维数组,里面的顺序跟省份的顺序是相同的。通过selectedIndex获得省份的下标值来得到相应的城市数组 
var city=[{'01':"北京",'02':"天津",'03':"上海",'04':"重庆"},{'05':"南京",'06':"苏州",'07':"南通",'08':"常州"},{'09':"福州",'10':"福安",'11':"龙岩",'12':"南平"},{'13':"广州",'14':"潮阳",'15':"潮州",'16':"澄海"},{'17':"兰州",'18':"白银",'19':"定西",'20':"敦煌"}]; 
function getCity(){ 
//获得省份下拉框的对象 
var sltProvince=document.form1.province; 
//获得城市下拉框的对象 
var sltCity=document.form1.city; 
//得到对应省份的城市数组 
var provinceCity=city[sltProvince.selectedIndex - 1]; 

//清空城市下拉框,仅留提示选项 
var i = 1;
//将城市数组中的值填充到城市下拉框中 

for(var n in provinceCity){
	console.log(n,provinceCity[n]);
	sltCity[i]=new Option(provinceCity[n],n);
	i++;
}

} 
</script> 
</head> 
<body> 
	<form METHOD=POST ACTION="" name="form1"> 
		<select NAME="province" onChange="getCity()"> 
			<option VALUE="0">请选择所在省份 </option> 
			<option VALUE="1">直辖市 </option> 
			<option VALUE="2">江苏省 </option> 
			<option VALUE="3">福建省 </option> 
			<option VALUE="4">广东省 </option> 
			<option VALUE="5">甘肃省 </option> 
		</select> 
		<select NAME="city"> 
			<option VALUE="0">请选择所在城市 </option> 
		</select> 
	</form> 
</body> 
qeqeewq 2014-02-23
  • 打赏
  • 举报
回复
楼上的代码没错,我加入后还是不能用,二级下拉框是空白没反应,是否是因为楼上代码不能添加在表单里所以不能用.那该怎样解决?代码如下: <form name="searchForm" action="<!--{$wapfile}-->?c=user&a=list" method="post"> <div> 我  要 找: 年  龄: <!--{hook mod='age' name='s_sage' value='20' text='=不限='}--> ~ <!--{hook mod='age' name='s_eage' value='30' text='=不限='}--> 岁 <br /> 所在地区: <form method=post action="" name="form1"> <select name="s_dist1" onChange="getS_dist2()"> <option VALUE="0">请选择所在省份 </option> <option VALUE="9">广东省 </option> </select> <select name="s_dist2"> <option VALUE="0">请选择所在城市 </option> </select> </form> <input type="submit" value="立即搜索" class="submit_b"/> </p> </form> </body> </html> <script language="JavaScript" type="text/javascript"> //定义了城市的二维数组,里面的顺序跟省份的顺序是相同的。通过selectedIndex获得省份的下标值来得到相应的城市数组 var s_dist2=[{'10':"广州",'14':"潮阳",'15':"潮州",'16':"澄海"}]; function getS_dist2(){ //获得省份下拉框的对象 var sltS_dist1=document.form1.s_dist1; //获得城市下拉框的对象 var sltS_dist2=document.form1.s_dist2; //得到对应省份的城市数组 var s_dist1S_dist2=s_dist2[sltS_dist1.selectedIndex - 1]; //清空城市下拉框,仅留提示选项 var i = 1; //将城市数组中的值填充到城市下拉框中 for(var n in s_dist1S_dist2){ console.log(n,s_dist1S_dist2[n]); sltS_dist2[i]=new Option(s_dist1S_dist2[n],n); i++; } } </script>
一起混吧 2014-02-23
  • 打赏
  • 举报
回复
form 嵌套了,不合理吧?你看下控制台下报什么错误了。

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧