我是asp初学者,学的东西不多,但我想做个网站来挑战下自己的能力,尤其是JS,正在自学中。下面是我遇到的一个问题,当一个页面放一个二级联动时,运行很正常。可出现两个时他就出错:当选择第一个下拉框的某项时,第二个会弹出相应的选项,但第二次在选择该下拉框时,上次选择的内容仍在里面,于是乎点的次数越多,第二个弹出的选项就越来越多。请问这是怎么回事啊?我已找了好久仍未果,求朋友指点,小弟不甚感激!
这是其中一个联动的代码,第二个与之类似。
caritem=new Array(); 
caritem[0]=new Array('奔驰',''); 
caritem[1]=new Array('奔驰','奔驰CLK'); 
caritem[2]=new Array('奔驰','奔驰CLS'); 
caritem[3]=new Array('奔驰','奔驰ML级'); 
caritem[4]=new Array('奔驰','奔驰SL级'); 
caritem[5]=new Array('奔驰','奔驰(进口)'); caritem[6]=new Array('宝马',''); 
caritem[7]=new Array('宝马','宝马5系'); 
caritem[8]=new Array('宝马','宝马X3'); 
caritem[9]=new Array('宝马','宝马X6'); 
caritem[10]=new Array('宝马','宝马Z4'); 
caritem[11]=new Array('宝马','宝马(进口)'); caritem[12]=new Array('奥迪',''); 
caritem[13]=new Array('奥迪','奥迪A4L'); 
caritem[14]=new Array('奥迪','奥迪Q5'); 
caritem[15]=new Array('奥迪','奥迪R8'); 
caritem[16]=new Array('奥迪','奥迪TT'); caritem[17]=new Array('别克',''); 
caritem[18]=new Array('别克','别克GL8'); 
caritem[19]=new Array('别克','君威'); 
caritem[20]=new Array('别克','君越'); 
caritem[21]=new Array('别克','凯越'); 
caritem[22]=new Array('别克','别克(进口)'); caritem[23]=new Array('丰田',''); 
caritem[24]=new Array('丰田','雅力士'); 
caritem[25]=new Array('丰田','丰田RAV4'); 
caritem[26]=new Array('丰田','皇冠'); 
caritem[27]=new Array('丰田','卡罗拉'); 
caritem[28]=new Array('丰田','丰田(进口)'); function remove() 

for(var n=0;n<5;n++) 

for(var i=0;i<document.userInfo.carname.length;i++) 

document.userInfo.carname.remove(i); 



function brandchange(myform) 

remove(); 
var optcar=document.createElement("option"); 
optcar.text="请选择"; 
optcar.value=""; 
myform.carname.add(optcar); var sign=myform.brand.value; for(var i=0;i<caritem.length;i++) 

if(caritem[i][0]==sign && caritem[i][1]!="") 

var optcar=document.createElement("option"); 
optcar.text=caritem[i][1]; 
optcar.value=caritem[i][1]; 
myform.carname.add(optcar); 


解决方案 »

  1.   

    淡定。让我看看
    document.userInfo.carname.remove(i);  

    myform.carname.add(optcar); 
    我看不清你是不是给下拉列表的名字是name="userInfo.carname";如果是添加的时候属性名字也应该是这个,不过我在Html不会这样写,会找不到这个标签,要以[]的方式写。
    你在自己瞅瞅哦
      

  2.   

    <form action="" id="addform" name="addform" method="post">
    <select id="one" name="one" onChange=" jumplist(this.value)">
         <option value="">请选择</option>
         <option value="1" >1</option>
         <option value="2" >2</option>
         <option value="3" >3</option>
         <option value="4" >4</option>
    </select>
    <select id="two" name="two" onChange="jumptdlist(this.value)">
      <option value="" >请选择</option>
    </select>
    <select id="thd" name="thd" >
      <option value="" >请选择</option>
    </select></form>
    <script language="javascript">
    <!--
    var ls=new Array();
     ls[0]=new Array("1","11","11");
     ls[1]=new Array("1","12","12");
     ls[2]=new Array("1","13","13");
     ls[3]=new Array("2","21","21");
     ls[4]=new Array("2","22","22");
     ls[5]=new Array("3","31","31");
     ls[6]=new Array("3","32","32");
     ls[7]=new Array("3","33","33");
     ls[8]=new Array("4","41","41");
     ls[9]=new Array("4","42","42");
     ls[10]=new Array("4","43","43");
    var thd= new Array();
     thd[0]= new Array("11","111","11");
     thd[1]= new Array("12","112","11");
     thd[2]= new Array("13","113","11");
     thd[3]= new Array("21","221","22");
     thd[4]= new Array("22","222","22");
     thd[5]= new Array("22","223","22");
     thd[6]= new Array("31","331","33");
     thd[7]= new Array("32","332","33");
     thd[8]= new Array("33","333","33");
     thd[9]= new Array("41","441","44");
     thd[10]= new Array("42","442","44");
     thd[11]= new Array("43","443","44");
     thd[12]= new Array("41","444","44"); function jumplist(listid){
      document.addform.two.length=0;
       for(var i=0;i<ls.length;i++){   
        if(ls[i][0]==listid){
       document.addform.two.options[document.addform.two.length]= new Option(ls[i][1],ls[i][2]); 
       jumptdlist(ls[i][2]);   
       }  
       if(document.addform.one.value==""){
       document.addform.two.options[0]= new Option("请选择","");
        document.addform.thd.options[0]= new Option("请选择","");
       }
      }
     }
     function jumptdlist(thirdid){
         document.addform.thd.length=0; 
       for(var i=0;i<thd.length;i++){
        if(thd[i][0]==thirdid){
        document.addform.thd.options[document.addform.thd.length]=new Option(thd[i][1],thd[i][2]);  
        }
       }
       if(document.addform.two.value==""){
       document.addform.thd.options[0]= new Option("请选择","");
       }
     }
    -->
    </script>
      

  3.   

    首先谢谢你们表单的name="userInfo" 我想要的效果是选择一个汽车品牌弹出相应的车系,品牌列表的name="brand",相应车系列表的name="carname"