喜悦国际村 » XML/HTML/CSS/Js » 帮忙修改其中的BUG(二级联动)

页: [1]
zww232006-7-13 08:59 AM
帮忙修改其中的BUG(二级联动)

当选了1系列的后,再选2系列,那在第二级那里也会出现1系列的东西。

[php]
<form enctype="multipart/form-data" action="" name="frm" method="post">

    <select name="s1" onChange="redirec(document.frm.s1.options.selectedIndex)">
      <option selected="selected">第一级</option>
      <option value="1">1系列</option>
      <option value="2">2系列</option>
      <option value="3">3系列</option>
      <option value="4">4系列</option>
      <option value="5">5系列</option>
      <option value="6">6系列</option>
    </select>
   
    <select name="s2">
     <option selected="selected">第二级</option>
    </select>
</form>
          <script language="javascript">
//获取一级菜单长度
var select1_len = document.frm.s1.options.length;
var select2 = new Array(select1_len);

//把一级菜单都设为数组
for (i=0; i<select1_len; i++)
{
select2[i] = new Array();
}

//定义基本选项
select2[0][0] = new Option("请选择第一级", " ");

select2[1][0]=new Option("1-1系列","1");
select2[1][1]=new Option("1-2系列","2");
select2[1][2]=new Option("1-3系列","3");
select2[1][3]=new Option("1-4系列","4");
select2[1][4]=new Option("1-5系列","5");
select2[1][5]=new Option("1-6系列","6");

select2[2][0]=new Option("2-1系列","7");
select2[2][1]=new Option("2-2系列","8");
select2[2][2]=new Option("2-3系列","9");

select2[3][0]=new Option("3-1系列","10");
select2[3][1]=new Option("3-2系列","11");
select2[3][2]=new Option("3-3系列","12");
select2[3][3]=new Option("3-4系列","13");

select2[4][0]=new Option("4-1系列","14");

select2[5][0]=new Option("5-1系列","15");
select2[5][1]=new Option("5-2系列","16");
select2[5][2]=new Option("5-3系列","17");

select2[6][0]=new Option("6-1系列","18");
select2[6][1]=new Option("6-2系列","19");
select2[6][2]=new Option("6-3系列","20");
select2[6][3]=new Option("6-4系列","21");


//联动函数
function redirec(x)
{
var temp = document.frm.s2;

for (i=0;i<select2[x].length;i++)
{
  temp.options[i]=new Option(select2[x][i].text,select2[x][i].value);
}
temp.options[0].selected=true;

}
</script>

[/php]

km39452006-7-14 01:26 AM
[php]
<HTML><HEAD>
<TITLE>无标题文档</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<STYLE TYPE="text/css"><!--
BODY, TD, SELECT{FONT-SIZE:9pt; FONT-FAMILY:"宋体";}
--></STYLE>
<script language="javascript" defer>
var aData1 = new Array();
aData1[0] = ['北京', '北京一|1', '北京二|2', '北京三|3'];
aData1[1] = ['上海', '上海一|4', '上海一|5', '上海一|6'];
aData1[2] = ['深圳', '深圳一|7', '深圳一|8', '深圳一|9'];
var aData2 = new Array();
aData2[0] = ['电脑', '电脑一|1', '电脑一|2', '电脑一|3'];
aData2[1] = ['冶金', '冶金一|4', '冶金一|5', '冶金一|6'];
aData2[2] = ['建筑', '深圳一|7', '深圳一|8', '冶金一|9'];
/*
数据格式如上,可以自行用后台生成该数组.如:
'北京一|1'
"|"号前面是文本,之后则是对应的VALUE.
*/

/*该程序以封装,自行按需要修改,扩展.*/
function TowSelect(){
this.Dadas='';
this.objSEL1=form1.s1;
this.objSEL2=form1.s2;
this.Window_Onload=function(){  //初始化北京地区数据
  for (var i=0; i<this.Dadas.length; i++){
   this.objSEL1.options.add(new Option(this.Dadas[i][0], i));
   }
  this.Select_Select(0);
};
this.Select_Select=function(v){  //用于按S1传过来的值初始S2的列表
  this.objSEL2.options.length = 0;
  for (var i=1; i<this.Dadas[v].length; i++)
   this.objSEL2.options.add(new Option(this.Dadas[v][i].split('|')[0], this.Dadas[v][i].split('|')[1]));
};
this.getValue=function(){   //获取S1和S2的所选定的值
  return {
   S1Value: this.objSEL1.value,
   S2Value: this.objSEL2.value,
   S1Text:  this.objSEL1.options[this.objSEL1.selectedIndex].text,
   S2Text:  this.objSEL2.options[this.objSEL2.selectedIndex].text
   }
};
};
var TS=new TowSelect(); //实例化地区数据
TS.Dadas=aData1;
TS.Window_Onload();
</script>
</HEAD>

<BODY bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="50">
<center>
<form name="form1">
  <DIV>
   <select name="s1" size="1" onChange="TS.Select_Select(this.value);"></select>
   <select name="s2" size="1"></select>
   <input type="button" value="显示当前选定的value" onclick="alert('S1='+TS.getValue().S1Value+' , S2='+TS.getValue().S2Value)" />
   <input type="button" value="显示当前选定的text " onclick="alert('S1='+TS.getValue().S1Text+' , S2='+TS.getValue().S2Text)" />
  </DIV>
</form>
</center>
</BODY>
</HTML>
[/php]

zww232006-7-14 06:37 AM
非常感谢!!!!!


查看完整版本: 帮忙修改其中的BUG(二级联动)


Powered by Discuz! Archiver 6.1.0  © 2001-2006 Comsenz Inc.
Processed in 0.006041 second(s), 2 queries