Javascript 单数组实现列表框两级联动三级联动 By shawl.qiu

Javascript 单数组实现列表框两级联动三级联动 By shawl.qiu


摘要:
本文演示了使用一个 Javascript 数组 实现表单域列表框的联动显示. 
注: 数组内容由ASP生成

说明:
其实可以再N级联动, 不过那样效率得不到保障.
二级联动, 大类10, 每子类10, 数组数就是 10*10=100
三级就是 10*10*10=1000 数组
四级...
那样会让客户端浏览器CPU占用100%. 

目录:
1. 两级联动
2. 三级联动

shawl.qiu
2006-10-08
  http://blog.csdn.net/btbtd

1. 两级联动
  1. linenum
  2. <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns=" http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <title>Untitled Document</title>
  8. <script type="text/javascript">
  9. //<![CDATA[
  10.     var ar=new Array()
  11. <%
  12.     dim i, i_
  13.     dim arNum:arNum=0
  14.     dim cat, cat1
  15.     for i=0 to 9
  16.         for i_=0 to 9
  17.             if i_=0 then cat="父类别"&i else cat=null
  18.             cat1="父类别"&i&" 子类别:"&i_
  19.             response.write "ar["&arNum&"]=new Array('"&i&"','"&cat&"','"&i_&"','"&cat1&"')"&chr(13)
  20.             arNum=arNum+1
  21.         next
  22.     next
  23. %>
  24.     function showCat(){
  25.         var catItem=0
  26.         var cat1Item=0
  27.         var i
  28.             document.all.cat.length=0
  29.         for(i=0; i < ar.length;i++){
  30.             if (ar[i][1]!==""){
  31.                 document.all.cat.options[catItem]=new Option(ar[i][1],ar[i][0])
  32.                 catItem++
  33.             }
  34.             if(ar[i][0]==0){
  35.                 document.all.cat1.options[cat1Item]=new Option(ar[i][3],ar[i][2])
  36.                 cat1Item++
  37.             }
  38.         } //shawl.qiu script
  39.     }
  40.     window.οnlοad=showCat;
  41.     
  42.     function catChg(){
  43.         var cat1Item=0
  44.         var catSleVal=document.all.cat.value
  45.             document.all.cat1.length=0
  46.             
  47.         for (i=0;i<ar.length;i++){
  48.             if(ar[i][0]==catSleVal){
  49.                 document.all.cat1.options[cat1Item]=new Option(ar[i][3],ar[i][2])
  50.                 cat1Item++
  51.             }
  52.         }//shawl.qiu script
  53.     }
  54. //]]>
  55. </script>
  56. </head>
  57.  
  58. <body>
  59. <form action="" method="post" name="ubbForm" id="ubbForm">
  60.   <select name="cat" id="cat" οnchange="catChg()">
  61.   </select>
  62.   <select name="cat1" id="cat1">
  63.   </select>  
  64.   <br />
  65. </form>
  66. </body>
  67. </html>

2. 三级联动
  1. linenum
  2. <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns=" http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <title>Untitled Document</title>
  8. <script type="text/javascript">
  9. //<![CDATA[
  10.     var ar=new Array()
  11. <%
  12.     dim i, i_, i__
  13.     dim arNum:arNum=0
  14.     dim cat, cat1, cat2
  15.     for i=0 to 9
  16.         for i_=0 to 9
  17.             for i__=0 to 9
  18.                     if i_=0 and i__=0 then cat="类别"&i else cat=null
  19.                     if i__=0 then cat1="类别"&i&" 类别1: "&i_ else cat1=null
  20.                         cat2="类别"&i&" 类别1 "&i_&" 类别2: "&i__
  21.                         
  22.                     response.write "ar["&arNum&"]=new Array('"&i&i&"','"&cat&"','"&i_&i_&"','"&cat1&"','"&i__&i__&"','"&cat2&"')"&chr(13)
  23.                     arNum=arNum+1
  24.             next
  25.         next
  26.     next
  27. %>
  28.     function showCat(){
  29.         var catItem=0
  30.         var cat1Item=0
  31.         var cat2Item=0
  32.         var i
  33.             document.all.cat.length=0
  34.             document.all.cat1.length=0
  35.             document.all.cat2.length=0
  36.         for(i=0; i < ar.length;i++){
  37.             if (ar[i][1]!==""){
  38.                 document.all.cat.options[catItem]=new Option(ar[i][1],ar[i][0])
  39.                 catItem++
  40.             }
  41.             if((ar[i][0]==0)&&(ar[i][3]!=="")){
  42.                 document.all.cat1.options[cat1Item]=new Option(ar[i][3],ar[i][2])
  43.                 cat1Item++
  44.             }
  45.             if((ar[i][0]==0)&&(ar[i][2]==0)){
  46.                 document.all.cat2.options[cat2Item]=new Option(ar[i][5],ar[i][4])
  47.                 cat2Item++
  48.             }
  49.         } //shawl.qiu script
  50.     }
  51.     window.οnlοad=showCat;
  52.     
  53.     function catChg(chgLevel){
  54.         var cat1Item=0
  55.         var cat2Item=0
  56.         var catSleVal=document.all.cat.value
  57.         var cat1SleVal=document.all.cat1.value
  58.         
  59.         if (chgLevel==0){ document.all.cat1.length=0 }
  60.             document.all.cat2.length=0
  61.         for (i=0;i<ar.length;i++){
  62.             if (chgLevel==0){
  63.                 if((ar[i][0]==catSleVal)&&(ar[i][3]!=="")){
  64.                     document.all.cat1.options[cat1Item]=new Option(ar[i][3],ar[i][2])
  65.                     cat1Item++
  66.                 }
  67.                 if((ar[i][0]==catSleVal)&&(ar[i][4]==0)){
  68.                     document.all.cat2.options[cat2Item]=new Option(ar[i][5],ar[i][4])
  69.                     cat2Item++
  70.                 }
  71.             } else if (chgLevel==1){
  72.                 if((ar[i][0]==catSleVal)&&(ar[i][2]==cat1SleVal)){
  73.                     document.all.cat2.options[cat2Item]=new Option(ar[i][5],ar[i][4])
  74.                     cat2Item++
  75.                 }
  76.             } //shawl.qiu script
  77.         } 
  78.     }
  79. //]]>
  80. </script>
  81. </head>
  82.  
  83. <body>
  84. <form action="" method="post" name="ubbForm" id="ubbForm">
  85.   <select name="cat" id="cat" οnchange="catChg(0)">
  86.   </select>
  87.   <select name="cat1" id="cat1" οnchange="catChg(1)">
  88.   </select>  
  89.   <select name="cat2" id="cat2">
  90.   </select>  
  91.   <br />
  92. </form>
  93. </body>
  94. </html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值