这是一段三级联动菜单的代码,为什么选择了一级分类,二级和三级分类一点反应都没有哪里有问题了?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>联动菜单</title>
</head>
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
subcat[0] = new Array("8","11111111","7");
subcat[1] = new Array("1","美食街d","0");
subcat[2] = new Array("17","d dddddddddd","6");
subcat[3] = new Array("2","城南","0");
subcat[4] = new Array("3","城北","0");
subcat[5] = new Array("4","城东","0");
subcat[6] = new Array("5","城西","0");
subcat[7] = new Array("6","新区","0");
subcat[8] = new Array("7","ddddd","5");
subcat[9] = new Array("9","2222222","2");
subcat[10] = new Array("16","发福","4");
onecount=11;//联动函数
function changelocation(locationid)
   {
   document.myform.ctype.length = 0; 
   var locationid=locationid;
   var i;
   for (i=0;i < onecount; i++)
       {
           if (subcat[i][2] == locationid)
           { 
      //var newOption1=new Option(subcat[i][1], subcat[i][0]);
               //document.all.ctype.add(newOption1);
               document.myform.ctype.options[document.myform.ctype.length] = new Option(subcat[i][1], subcat[i][0]);
           }        
       }
       
   }   
function changelocation2(locationid)
   {
   document.myform.dtype.length = 0; 
   var locationid=locationid;
   var j;
   for (j=0;j < onecount; j++)
       {
           if (subcat[j][2] == locationid)
           { 
      //var newOption1=new Option(subcat[i][1], subcat[i][0]);
               //document.all.dtype.add(newOption1);
               document.myform.dtype.options[document.myform.dtype.length] = new Option(subcat[j][1], subcat[j][0]);
           }        
       }
       
   }    
</script><form method="post" action="ru_query.php">
<select name="type" onChange="changelocation(document.myform.type.options[document.myform.type.selectedIndex].value)" >
<option selected  value="" >一级分类</option>   <option value="1">美食街d</option>
    <option value="2">城南</option>
    <option value="3">城北</option>
    <option value="4">城东</option>
    <option value="5">城西</option>
    <option value="6">新区</option>
        
      </select> 
   
   <select name="ctype" onChange="changelocation2(document.myform.ctype.options[document.myform.ctype.selectedIndex].value)" >                  
       <option selected value="">二级分类</option>
   </select>
   <select name="dtype">                  
       <option selected value="">三级分类</option>
   </select>
<input type="submit" value="搜索">
</form>
<body>
</body>
</html>

解决方案 »

  1.   

    document.myform
    你的myform没有!!!
    <form name="myform" method="post" action="ru_query.php">
      

  2.   


    谢谢啊,加上name="myform"后二级分类出来了,但是只能显示一条,三级分类还是没反应
      

  3.   

    在你的二级菜单上在写个onchange事件
    你要写二个自定义函数
    而且把你的添加的二级菜单的变量设为全局变量
    这样就可以调二级菜单的数啦!~~
      

  4.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <script language = "JavaScript">
    var subcat = new Array();
    subcat["美食街"] = ["1","美食街d","0"];
    subcat["城南"] = ["17","d dddddddddd","6"];
    subcat["城北"] = ["2","城南","0"];
    subcat["城东"] = ["3","城北","0"];
    subcat["城西"] = ["4","城东","0"];
    subcat["新区"] = ["5","城西","0"];
    var arryCtype = new Array();
    arryCtype["1"] = ["1","美食街d","0"];
    arryCtype["美食街d"] = ["17","d dddddddddd","6"];
    arryCtype["0"] = ["2","城南","0"];
    arryCtype["城南"] = ["3","城北","0"];
    arryCtype["城东"] = ["4","城东","0"];
    arryCtype["城西"] = ["5","城西","0"]; function changelocation(){ 
       var Names = document.myform.type.value;
       document.myform.ctype.options.length = 0;
       
       for (var i in subcat[Names]) {
    optionOne = new Option(subcat[Names][i],subcat[Names][i]);
    document.myform.ctype.options.add(optionOne);
       }
       

       

    function changelocation2() {
    var ctype = document.myform.ctype.values;
       document.myform.dtype.options.length = 0; 
    var optionTwo;
    for (var j in arryCtype[ctype]) {
    optionTwo = new Option(arryCtype[ctype][j],arryCtype[ctype][j]);
    document.myform.ctype.options.add(optionTwo);
    }
      }    
    </script></HEAD><BODY>
    <form method="post" action="ru_query.php" name="myform">
    <select name="type" onChange="changelocation()" >
    <option selected  value="一级分类" >一级分类</option>   <option value="美食街">美食街</option>
        <option value="城南">城南</option>
        <option value="城北">城北</option>
        <option value="城东">城东</option>
        <option value="城西">城西</option>
        <option value="新区">新区</option>
            
          </select> 
       
       <select name="ctype" onChange="changelocation2()" >                  
           <option selected value="">二级分类</option>
       </select>
       <select name="dtype">                  
           <option selected value="">三级分类</option>
       </select>
    <input type="submit" value="搜索">
    </form></BODY>
    </HTML>