http://www.chinazcjdw.com/menu/index.asp?typeid=4

解决方案 »

  1.   

    添加一个标识  "1" 表示默认选取 "0" 表示不默认选取代码如下:<BODY> 
    <SELECT NAME="s1"><option>出错了!</option></SELECT> 
    <SELECT NAME="s2"></SELECT> 
    <SELECT NAME="s3"></SELECT> 
    <SELECT NAME="s4"></SELECT> 
    <SCRIPT LANGUAGE="JavaScript"> 
    <!-- 
    //选择框的名字 
    selector = [ "s1", "s2", "s3", "s4" ]; 
    //选择项: "名字", "值", 子选择 
    menu = [ 
    "地球","1","1",

    "中国","86","1",

    "北京","BJ","0",

    "昌平","1","1",null 
    ], 
    "四川","SC", "1",

    "成都","28","0",null, 
    "乐山","","1",null, 
    "攀枝花","","0",null, 
    "自贡","","0",null, 
    "德阳","","0",null, 
    "绵阳","","0",null 
        ] 
        ], 
    "米国","1","0", 

    "加利福尼亚","CA","1", 

    "旧金山","1","0",null, 
    "洛杉矶","2","1",null 
    ], 
    "华盛顿","WA","0", 

    "西雅图","seattle","1",null 


    ], 
    "火星","2","0", 

    "大峡谷","86","1", 

    "小山丘","BJ","1", 

    "A地区","28","0",null, 
    "B地区","","0",null, 
    "C地区","","1",null 

        ] 
       ] 
     ]; function wizz(level) 

    if( level == 0 ) 
       a = menu; 
    else 

    str = "menu"; 
    for( i=0; i<level; i++ ) 
       str += "[" + (document.all[selector[i]].selectedIndex * 4 + 3) + "]"; 
    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/4) ) 
      {
    s.options[i] = Option( a[i*4], a[i*4+1] );
    if(a[i*4+2]=="1") s.options[i].selected=true;
    if(a[i*4+2]!="1") s.options[i].selected=false;
    i++
      }
    s.onchange = function(){wizz(level+1)}; 
    wizz(level+1); 

    wizz(0); 
    //--> 
    </SCRIPT> 
    </BODY> 
    </HTML> 如果菜单不复杂还可以,如果数据量太大,或者菜单层次太多,最好用xmlhttp异步加载。
      

  2.   

    给你我写的级联吧,支持无限级联
    http://www.comeba.net/SelectList.asp不过现在还只是全部在客户端加载,呵呵,以后改进。
      

  3.   

    非常感谢各位老大,特别是  precipitant(塞北的雪) 兄,能耐心得对这段脚本进行修改和调试。
    可惜自身水平低,无法读懂这段脚本,还消化不了,只能拿来用