<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<title>两级关联菜单</title>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=javascript>
<!--
var prv=new Array()//品牌
var cty=new Array()//规格
var ctyid=new Array()//id
var ctyunit=new Array()//单位
function init(){

prv[0]="11111";

cty[0]=new Array()
ctyid[0]=new Array()
ctyunit[0]=new Array()

cty[0][0]="11-1";
ctyid[0][0]="334";
ctyunit[0][0]="111";

cty[0][1]="awaysrain1";
ctyid[0][1]="111";
ctyunit[0][1]="awaysrain1";

prv[1]="32";

cty[1]=new Array()
ctyid[1]=new Array()
ctyunit[1]=new Array()

cty[1][0]="324-23";
ctyid[1][0]="297";
ctyunit[1][0]="34";

cty[1][1]="awaysrain1";
ctyid[1][1]="111";
ctyunit[1][1]="awaysrain222";

prv[2]="test";

cty[2]=new Array()
ctyid[2]=new Array()
ctyunit[2]=new Array()

cty[2][0]="test-test";
ctyid[2][0]="335";
ctyunit[2][0]="test";

cty[2][1]="awaysrain1";
ctyid[2][1]="111";
ctyunit[2][1]="awaysrain1";

if(prv.length >0){
for(i=0;i<prv.length;i++)
with(document.frm.province)options[length]=new Option(prv[i],prv[i])
document.frm.province.onchange=new Function("go(this.selectedIndex)")
}
}function go(sIndex)
{
with(document.frm.city)
{
length=0;
if(sIndex==0)
{
options[0]=new Option("请选择");
return
}
for(i=0;i<cty[sIndex-1].length;i++)
options[length]=new Option(cty[sIndex-1][i],ctyid[sIndex-1][i])
document.frm.r.value=value;  
}
//document.frm.u.value=document.frm.city.value;
}
window.onload=init-->
</SCRIPT>
<form name=frm>
<SELECT name=province>
<OPTION selected>请选择</OPTION>
</SELECT>
<SELECT name=city onchange="frm.u.value=ctyunit[frm.province.selectedIndex][frm.city.selectedIndex]"">
<OPTION selected>请选择</OPTION>
</SELECT>
<input name=r id=r><input name=u id=u>
</form>
</BODY>
</HTML>

解决方案 »

  1.   

    <form name=form1>
    <select name=province onchange="cityName(this.selectedIndex)">
      <option value="">请选择省名</option>
    </select><select name=city>
      <option value="">请选择城名</option>
    </select>
    </form><script language=javascript>var provinceName = ["浙江", "江苏", "安徽", "江西"];
    var city1 = ["杭州", "宁波", "温州", "绍兴", "金华", "湖州"];
    var city2 = ["南京", "苏州", "无锡", "常州", "镇江", "徐州"];
    var city3 = ["合肥", "翕县", "黄山", "祁门", "休宁"];
    var city4 = ["南昌", "九江", "赣州", "上饶", "新余", "景德镇"]; 
    function province()
    {    var e = document.form1.province;
        for (var i=0; i<provinceName.length; i++)
           e.options.add(new Option(provinceName[i], provinceName[i]));
    }
    function cityName(n)
    {
        var e = document.form1.city;
        for (var i=e.options.length; i>0; i--)  e.remove(i);
        if (n == 0) return;
        var a = eval("city"+ n); //得到城市的数组名
        for (var i=0; i<a.length; i++) e.options.add(new Option(a[i], a[i]));
    }
    function window.onload()
    {
        province(); //初始时给省名下拉框赋内容
    }
    </script>
      

  2.   

    <div align="center">
    <form name="isc">
    <table border="0" cellspacing="0" cellpadding="0">
    <tr align="center">
    <td nowrap height="11">
    <select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
    <option selected>◤1111111◢</option>
    <option>★2222222</option>
    <option>★3333333</option>
    </select>
    <select name="stage2" size="1" onChange="redirect1(this.options.selectedIndex)">         
    <option value=" " selected></option>')         
    <option value=" " selected>◤------第二层菜单------◢</option>  
    <option value=" " selected>◤------第二层菜单------◢</option>  
    </select>   
    <select name="stage3" size="1" onChange="redirect2(this.options.selectedIndex)">        
    <option value=" " selected></option>')         
    <option value=" " selected>◤------第三层菜单------◢</option>   
    <option value=" " selected>◤------第三层菜单------◢</option>   
    </select></table> 
    </form></div>   
    <script language="JavaScript">
    <!--
    var groups=document.isc.example.options.length      
    var group=new Array(groups)      
    for (i=0; i<groups; i++)      
    group[i]=new Array()      
          
    group[0][0]=new Option("----第二层菜单----"," ");      
          
    group[1][0]=new Option("」第一类"," ");      
    group[1][1]=new Option("」第二类","47");      
    group[1][2]=new Option("」第三类","46");      
    group[1][3]=new Option("」第四类","45");      
          
    group[2][0]=new Option("」第一类"," ");      
    group[2][1]=new Option("」第二类","115");      
    group[2][2]=new Option("」第三类","116");       
          
    var temp=document.isc.stage2      
          
          
    function redirect(x){      
    for (m=temp.options.length-1;m>0;m--)      
    temp.options[m]=null      
    for (i=0;i<group[x].length;i++){      
    temp.options[i]=new Option(group[x][i].text,group[x][i].value)      
    }      
    temp.options[0].selected=true      
    redirect1(0)      
    }      
          
          
          
    var secondGroups=document.isc.stage2.options.length      
    var secondGroup=new Array(groups)      
    for (i=0; i<groups; i++)  {      
    secondGroup[i]=new Array(group[i].length)      
    for (j=0; j<group[i].length; j++)  {      
    secondGroup[i][j]=new Array()  }}      
          
    secondGroup[0][0][0]=new Option("----第三层菜单----"," ");      
    secondGroup[1][0][0]=new Option("----第三层菜单----"," ");      
    secondGroup[1][1][0]=new Option("」 第一节"," ");      
    secondGroup[1][1][1]=new Option("」 第一节","../cgi/pagenew8.htm");      
    secondGroup[1][1][2]=new Option("」 第一节","../cgi/pagenew8.htm");      
    secondGroup[1][1][3]=new Option("」 第一节","../explain/route.htm");      
          
    secondGroup[1][2][0]=new Option("」第三类"," ");      
    secondGroup[1][2][1]=new Option("第二节","../cgi/pagenew7.htm");      
    secondGroup[1][2][2]=new Option("第二节","../cgi/pagenew7.htm");      
    secondGroup[1][2][3]=new Option("第二节","../explain/route.htm");      
          
    secondGroup[1][3][0]=new Option("」第四类"," ");      
    secondGroup[1][3][1]=new Option("第三节","../cgi/pagenew15.htm");      
    secondGroup[1][3][2]=new Option("第三节","../explain/route.htm");      
          
    secondGroup[2][0][0]=new Option("----第三层菜单----"," ");      
    secondGroup[2][1][0]=new Option("」第三类"," ");      
    secondGroup[2][1][1]=new Option("」第三节(1)","../pictures/cartoon/1.htm");      
    secondGroup[2][1][2]=new Option("」第三节(2)","../pictures/cartoon/2.htm");      
    secondGroup[2][1][3]=new Option("」第三节(3)","../pictures/cartoon/3.htm");      
          
    secondGroup[2][2][0]=new Option("」第四类"," ");      
    secondGroup[2][2][1]=new Option("第三节l(1)","../pictures/email/1.htm");      
    secondGroup[2][2][2]=new Option("第三节(2)","../pictures/email/1.htm");      
          
    var temp1=document.isc.stage3      
    function redirect1(y){      
    for (m=temp1.options.length-1;m>0;m--)      
    temp1.options[m]=null      
    for (i=0;i<secondGroup[document.isc.example.options.selectedIndex][y].length;i++){      
    temp1.options[i]=new Option(secondGroup[document.isc.example.options.selectedIndex][y][i].text,secondGroup[document.isc.example.options.selectedIndex][y][i].value)      
    }      
    temp1.options[0].selected=true   
    }   
       
    function redirect2(){   
    window.open(temp1.value,"","toolbar=no,location=yes,directories=no,status=no,menubar=no,scrollbars=yes, resizable=yes,copyhistory=yes,width=700,height=450");   
    }   
    //-->
    </script>
      

  3.   

    awaysrain(绝对零度),谢谢你给我解答,可是你给我的源码中,切换到最后一个时,javascript就报错,大哥们请帮我解决掉
      

  4.   

    别人的!不错!<html>
    <head>
    <script>
    function check()
    {
      if(f1.d1.options[0].selected)
      {
         f1.d2.length=0     f1.d2.options.add(new Option("***白菜***","***白菜***"))
         f1.d2.options.add(new Option("***萝卜***","***萝卜***"))
      
      }
      else if(f1.d1.options[1].selected)
      {
         f1.d2.length=0
         f1.d2.options.add(new Option("***苹果***","***苹果***"))
         f1.d2.options.add(new Option("***桃***","***桃***"))  }}
    </script>
    </head><body><form name="f1" method="POST" action="--WEBBOT-SELF--">
      
      <p><select size="1" name="d1" onchange="check()">
        <option selected>***蔬菜***</option>
        <option>***水果***</option>
      </select><select size="1" name="d2">
      <option>***白菜***</option>
      <option>***萝卜***</option>
      </select></p>
    </form></body></html>
      

  5.   

    这样可以了<HTML>
    <HEAD>
    <META http-equiv=Content-Type content="text/html; charset=gb2312">
    <title>两级关联菜单</title>
    </HEAD>
    <BODY>
    <SCRIPT LANGUAGE=javascript>
    <!--
    var prv=new Array()//品牌
    var cty=new Array()//规格
    var ctyid=new Array()//id
    var ctyunit=new Array()//单位
    function init(){

    prv[0]="11111";

    cty[0]=new Array()
    ctyid[0]=new Array()
    ctyunit[0]=new Array()

    cty[0][0]="11-1";
    ctyid[0][0]="334";
    ctyunit[0][0]="111";

    cty[0][1]="awaysrain111";
    ctyid[0][1]="111";
    ctyunit[0][1]="awaysrain111";

    prv[1]="32";

    cty[1]=new Array()
    ctyid[1]=new Array()
    ctyunit[1]=new Array()

    cty[1][0]="324-23";
    ctyid[1][0]="297";
    ctyunit[1][0]="34";

    cty[1][1]="awaysrain222";
    ctyid[1][1]="111";
    ctyunit[1][1]="awaysrain222";

    prv[2]="test";

    cty[2]=new Array()
    ctyid[2]=new Array()
    ctyunit[2]=new Array()

    cty[2][0]="test-test";
    ctyid[2][0]="335";
    ctyunit[2][0]="test";

    cty[2][1]="awaysrain333";
    ctyid[2][1]="111";
    ctyunit[2][1]="awaysrain333";

    if(prv.length >0){
    for(i=0;i<prv.length;i++)
    with(document.frm.province)options[length]=new Option(prv[i],prv[i])
    document.frm.province.onchange=new Function("go(this.selectedIndex)")
    }
    }function go(sIndex)
    {
    with(document.frm.city)
    {
    length=0;
    if(sIndex==0)
    {
    options[0]=new Option("请选择");
    return
    }
    for(i=0;i<cty[sIndex-1].length;i++)
    options[length]=new Option(cty[sIndex-1][i],ctyid[sIndex-1][i])
    document.frm.r.value=value;  
    }
    //document.frm.u.value=document.frm.city.value;
    }
    window.onload=init-->
    </SCRIPT>
    <form name=frm>
    <SELECT name=province>
    <OPTION selected>请选择</OPTION>
    </SELECT>
    <SELECT name=city onchange="frm.u.value=ctyunit[frm.province.selectedIndex-1][frm.city.selectedIndex]"">
    <OPTION selected>请选择</OPTION>
    </SELECT>
    <input name=r id=r><input name=u id=u>
    </form>
    </BODY>
    </HTML>
      

  6.   

    大哥,谢谢你,现在就给分,再提个小问题,如果第一级选择后,默认的是第二级,那个u显示不出来id呀,交个朋友
      

  7.   

    这样<HTML>
    <HEAD>
    <META http-equiv=Content-Type content="text/html; charset=gb2312">
    <title>两级关联菜单</title>
    </HEAD>
    <BODY>
    <SCRIPT LANGUAGE=javascript>
    <!--
    var prv=new Array()//品牌
    var cty=new Array()//规格
    var ctyid=new Array()//id
    var ctyunit=new Array()//单位
    function init(){

    prv[0]="11111";

    cty[0]=new Array()
    ctyid[0]=new Array()
    ctyunit[0]=new Array()

    cty[0][0]="11-1";
    ctyid[0][0]="334";
    ctyunit[0][0]="111";

    cty[0][1]="awaysrain111";
    ctyid[0][1]="111";
    ctyunit[0][1]="awaysrain111";

    prv[1]="32";

    cty[1]=new Array()
    ctyid[1]=new Array()
    ctyunit[1]=new Array()

    cty[1][0]="324-23";
    ctyid[1][0]="297";
    ctyunit[1][0]="34";

    cty[1][1]="awaysrain222";
    ctyid[1][1]="111";
    ctyunit[1][1]="awaysrain222";

    prv[2]="test";

    cty[2]=new Array()
    ctyid[2]=new Array()
    ctyunit[2]=new Array()

    cty[2][0]="test-test";
    ctyid[2][0]="335";
    ctyunit[2][0]="test";

    cty[2][1]="awaysrain333";
    ctyid[2][1]="111";
    ctyunit[2][1]="awaysrain333";

    if(prv.length >0){
    for(i=0;i<prv.length;i++)
    with(document.frm.province)options[length]=new Option(prv[i],prv[i])
    document.frm.province.onchange=new Function("go(this.selectedIndex)")
    }
    }function go(sIndex)
    {
    with(document.frm.city)
    {
    length=0;
    if(sIndex==0)
    {
    options[0]=new Option("请选择");
    return
    }
    for(i=0;i<cty[sIndex-1].length;i++)
    options[length]=new Option(cty[sIndex-1][i],ctyid[sIndex-1][i])
    document.frm.r.value=value;  
    }
    document.frm.u.value=ctyunit[frm.province.selectedIndex-1][frm.city.selectedIndex];
    }
    window.onload=init-->
    </SCRIPT>
    <form name=frm>
    <SELECT name=province>
    <OPTION selected>请选择</OPTION>
    </SELECT>
    <SELECT name=city onchange="frm.u.value=ctyunit[frm.province.selectedIndex-1][frm.city.selectedIndex]"">
    <OPTION selected>请选择</OPTION>
    </SELECT>
    <input name=r id=r><input name=u id=u>
    </form>
    </BODY>
    </HTML>