附加问题:
如果A的选项为d,则B变为一个type=text的文本框。
我本来是想写几个下拉框和文本框,然后用form.B.visibility='hidden',结果行不通。
各位高手请帮忙解决!

解决方案 »

  1.   

    <SELECT NAME="A" onchange="selclick(this.value)">
    <option value=a>a</option>
    <option value=b>b</option>
    <option value=c>c</option>
    <option value=d>d</option>
    </SELECT>
    <div id=sel></div>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var a_ar = new Array(1,2,3);
    var b_ar = new Array('a','b','c');
    var c_ar = new Array('x','y','z');
    init();
    function init(){
    selclick(document.all.A.value);
    }
    function selclick(v){
    var tmp="";
    switch(v){
    case "a":
    tmp=getSel(a_ar);
    break;
    case "b":
    tmp=getSel(b_ar);
    break;
    case "c":
    tmp=getSel(c_ar);
    break;
    case "d":
    tmp="<input type=text name=dtext>";
    break;
    default:
    break;
    }
    sel.innerHTML=tmp;
    }
    function getSel(ar){
    var tmp="<select name=B>";
    for (var i=0;i<ar.length;i++){
    tmp += "<option value="+ar[i]+">"+ar[i]+"</option>"
    }
    tmp+="</select>";
    return tmp;
    }
    //-->
    </SCRIPT>
      

  2.   

    <form name=form1><select name=sheng onchange="cityName(this.value)">
      <option value="">请选择省名</option>
    </select><select name=city>
      <option value="">请选择城名</option>
    </select></form><script language=javascript>
    var cityouterHTML = document.form1.city.outerHTML.substr(0, document.form1.city.outerHTML.length-9);
    function sheng()
    {
       var shengName = ["浙江", "江苏", "安徽", "江西"]; //这些数据可以从数据库中取得   var e = document.form1.sheng;
       var s = e.outerHTML.substr(0, e.outerHTML.length-9) + "\r\n";
           for (var i=0; i<shengName.length; i++){
           s += "<option value='"+ shengName[i] +"'>"+ shengName[i] +"</option>\r\n";}
           s += "</select>";
           e.outerHTML = s;
    }  sheng();
    function cityName(val)
    {
       var 浙江 = ["杭州", "宁波", "温州", "绍兴", "金华", "湖州"];
       var 江苏 = ["南京", "苏州", "无锡", "常州", "镇江", "徐州"];
       var 安徽 = ["合肥", "翕县", "黄山", "祁门", "休宁"];
       var 江西 = ["南昌", "九江", "赣州", "上饶", "新余", "景德镇"]; 
     //这些数据可以从数据库中取得   var e = document.form1.city;
       var s = cityouterHTML;
       if (val == "") {s += "</select>"; e.outerHTML = s; return;}
       var a = eval(val);
           for (var i=0; i<a.length; i++)
           {
               s += "<option value='"+ a[i] +"'>"+ a[i] +"</option>\r\n";
           }
           s += "</select>";
           e.outerHTML = s;
    }
    </script>
      

  3.   


    <SELECT NAME="A" onchange="B.innerHTML='';for(i=0;i<eval(value+value).length;i++) B.options[B.options.length]=new Option(eval(value+value)[i],eval(value+value)[i])">
    <option value=a>a</option>
    <option value=b>b</option>
    <option value=c>c</option>
    </SELECT>
    <SELECT NAME="B" onchange="alert(this.value)"></SELECT>
    <script>
    var aa=new Array("1","2","3","4","5","6","7","8","9","10","11","12")
    var bb=new Array("a","b","c","d","e")
    var cc=new Array("x","y","z",".........")
    </script>
      

  4.   

    我明白你的意思了,你说的两个下拉框是连动的!
    最简单的方法是有XML技术来实现!
    这是我们写的一个例子!function ChangeEquipStation1()
    {
        var strXPath = "recordset/row[SBStationID=\"" +  oFormPlan.oSelectApplyStation.value + "\""
                     + " and EquipStationID=\"" + oFormPlan.oSelectEquipStation1.value + "\""
                     + " and EquipmentType=\"" + oFormPlan.oSelectEquipType1.value + "\"]";
        var xltRows = xmlSEquip.selectNodes( strXPath );
        SetComBoxByXmlList(oFormPlan.oSelectSEquip1,xltRows,"EqAutoNo","FullName");
    }function ChangeEquipStation2()
    {
        var strXPath = "recordset/row[SBStationID=\"" +  oFormPlan.oSelectApplyStation.value + "\""
                     + " and EquipStationID=\"" + oFormPlan.oSelectEquipStation2.value + "\""
                     + " and EquipmentType=\"" + oFormPlan.oSelectEquipType2.value + "\"]";
        var xltRows = xmlSEquip.selectNodes( strXPath );
        SetComBoxByXmlList(oFormPlan.oSelectSEquip2,xltRows,"EqAutoNo","FullName");
    }
    function SetComBoxByXmlList(objCombox,xltSelected,strFldName_Code,strFldName_Caption)
    {
    ClearCombox(objCombox);
    if( xltSelected == null ) return false;

    strXPath_Code = strFldName_Code;
    strXPath_Caption = strFldName_Caption;
    var objOption;
    for(var i=0;i<xltSelected.length;i++)
    {
         objOption = document.createElement("OPTION");
         objCombox.options.add(objOption);
         objOption.innerText = xltSelected[i].selectSingleNode(strXPath_Caption).text;
         objOption.value = xltSelected[i].selectSingleNode(strXPath_Code).text;
    }
    }