多級關聯下拉選擇框的高效實現

<BODY>
<SELECT NAME="s1"><option>需要JavaScript才能正確顯示</SELECT>
<SELECT NAME="s2"></SELECT>
<SELECT NAME="s3"></SELECT>
<SELECT NAME="s4"></SELECT>

<SCRIPT LANGUAGE="JavaScript">
<!--

 

//選擇框的名字
selector = [ "s1", "s2", "s3", "s4" ];

 

//選擇項: "名字", "值", 子選擇
menu = [
"地球","1",
 [
 "中國","86",
  [
  "北京","BJ",
   [
   "--","1",null
   ],
  "四川","SC",
   [
   "成都","28",null,
   "樂山","",null,
   "攀枝花","",null,
   "自貢","",null,
   "德陽","",null,
   "綿陽","",null
   ]
  ],
 "米國","1",
  [
  "加利福尼亞","CA",
   [
   "舊金山","1",null,
   "洛杉磯","2",null
   ],
  "華盛頓","WA",
   [
   "西雅圖","seattle",null
   ]
  ]
 ],
"火星","2",
 [
 "大峽谷","86",
  [
  "小山丘","BJ",
   [
   "A地區","28",null,
   "B地區","",null,
   "C地區","",null
   ]
  ]
 ]
];

 

function wizz(level)
{
 if( level == 0 )
  a = menu;
 else
 {
  str = "menu";
  for( i=0; i<level; i++ )
   str += "[" + (document.all[selector[i]].selectedIndex * 3 + 2)  + "]";
  a = eval(str);
 }
 if( a == null ) return;
 
 s = document.all[selector[level]];
 i = s.length;
 while( i > 0 ) s.options[--i] = null;
 while( i < Math.floor(a.length/3) )
  s.options[i] = Option( a[i*3], a[i++*3+1] );
 s.onchange = Function("wizz(" + (level+1) + ")");
 wizz(level+1);
}

 

wizz(0);

//-->
</SCRIPT>

 

</BODY>
</HTML>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章