js select 的一个联动了.

解决方案 »

  1.   

    <html>
    <head>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function Dsy()
    {
     this.Items = {};
    }
    Dsy.prototype.add = function(id,iArray)
    {
     this.Items[id] = iArray;
    }
    Dsy.prototype.Exists = function(id)
    {
     if(typeof(this.Items[id]) == "undefined") return false;
     return true;
    }function change(v){
     var str="0";
     for(i=0;i<v;i++){ str+=("_"+(document.getElementById(s[i]).selectedIndex-1));};
     var ss=document.getElementById(s[v]);
     with(ss){
      length = 0;
      options[0]=new Option(opt0[v],opt0[v]);
      if(v && document.getElementById(s[v-1]).selectedIndex>0 || !v)
      {
       if(dsy.Exists(str)){
        ar = dsy.Items[str];
        for(i=0;i<ar.length;i++)options[length]=new Option(ar[i],ar[i]);
        if(v)options[1].selected = true;
       }
      }
      if(++v<s.length){change(v);}
     }
    }var dsy = new Dsy();dsy.add("0",["1","2","3"]);dsy.add("0_0",["11"]);
    dsy.add("0_0_0",["111"]);dsy.add("0_1",["21","22"]);
    dsy.add("0_1_0",["211"]);
    dsy.add("0_1_1",["221","222"]);dsy.add("0_2",["31","32","33"]);
    dsy.add("0_2_0",["311"]);
    dsy.add("0_2_1",["321","322"]);
    dsy.add("0_2_2",["331","332","333"]);
    //-->
    </SCRIPT>
    <SCRIPT LANGUAGE = JavaScript>
    <!--
    //** 秋水
    var s=["s1","s2","s3"];
    var opt0 = ["请","选","择"];
    function setup()
    {
     for(i=0;i<s.length-1;i++)
      document.getElementById(s[i]).onchange=new Function("change("+(i+1)+")");
     change(0);
    }
    //-->
    </SCRIPT>
    </head>
    <body  onload="setup()">
    <select id="s1"><option>请</option></select>
    <select id="s2"><option>选</option></select>
    <select id="s3"><option>择</option></select>
     </td> 
    </tr> 
        </table> 
    </form>
    </body>
    </html>