<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> 

解决方案 »

  1.   

    楼上的代码没错,我加入后还是不能用,二级下拉框是空白没反应,是否是因为楼上代码不能添加在表单里所以不能用.那该怎样解决?代码如下:
    <form name="searchForm" action="<!--{$wapfile}-->?c=user&a=list" method="post">
        <div>
      我&nbsp;&nbsp;要&nbsp;找:
                 年  龄:
          <!--{hook mod='age' name='s_sage' value='20' text='=不限='}-->&nbsp;~&nbsp;<!--{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> 
      

  2.   

    form 嵌套了,不合理吧?你看下控制台下报什么错误了。