http://lucky.myrice.com/javascriptexam/radioforselect.html

解决方案 »

  1.   

    如果数据都下来的话,定义个数组
    <script language="javascript">
    var arrkq=new Array();
    arrkq[0]=new Array(3);
    arrkq[1]=new Array(2);
    arrkq[0][0]="日报";
    arrkq[0][1]="周一";
    arrkq[0][2]="周二";
    arrkq[0][3]="周三";
    arrkq[1][0]="半月";
    arrkq[1][1]="月";
    arrkq[1][2]="双月";
    function checklbID(n)
    {var obj=document.form1.kq;
     for (i=(obj.options.length-1);i>-1;i--)
     { 
        obj.options.remove(i);
     }
     switch (n){
     case 0:
      for (i=0;i<4;i++)
       {
        setoptions(obj,0,i);
       }
       for (i=0;i<3;i++)
       {
        setoptions(obj,1,i);
       }
       break;
     case 1: 
       for (i=0;i<4;i++)
       {
        setoptions(obj,0,i);
       }
       break;
     case 2:
      for (i=0;i<3;i++)
       {
        setoptions(obj,1,i);
       }
      break;
     }
    }
    function setoptions(o,n,i)
    {
     var the_option= new Option(arrkq[n][i]);
     o.add(the_option);
    }
    </script>
    <form name=form1>
    <select name="lbID" onchange="checklbID(this.selectedIndex);">
    <option selected>全部</option>
    <option>select1</option>
    <option>select2</option>
    </select>
    <select name="kq">
    <option>...</option>
    <option>...</option>
    </select>
    </form>
      

  2.   

      我有个建议:  如果说数据是从数据库读出来的呢?上面的肯定就不能实现动态变化了吧!!  其实我有一个想法,就是对于这样一种情况,比如说在注册时,选省后,就可以对就的选另外一个下拉列框中对就的城市,可以如下来实现:  首先一次性的所省其及所对应的城市都读出来,并将其存一个二维数组中,其中二维数组每一行的第一个元素为省,此行后面那为所对应的城市。
      这样,我们就将这个数组传到js中,并通过第二个下拉列框的onchange来动态改和body的onload来实现一个默认的。   但是有一点问题就是如何将此数组的值进行转换呢?  请大家关注一下这个问题,看看能不能用asp和js来解决,拿出一个可行的例子出来看看,(关健数据要从数据中读出,而不静态的定好的!)
      

  3.   

    try http://expert.csdn.net/Expert/TopicView.asp?id=723099
      

  4.   

    我们的做法是:
    1. 写一个函数(use vbscript),runat server,取出记录集并且生成下拉式列表选项(option)
    2. 用js控制vb function
    3. 在select控件中onselect调用js函数
      

  5.   

    nebula (南湖畔的深蓝) :你要知道的这里都有:http://expert.csdn.net/expert/forum.asp?url=/Expert/ForumList.asp?roomid=304&typenum=6&xmlsrc=&whichpage=1
    coolhealth(漫漫追求):具体怎么访问数据库怎么生成,没有一段通用的代码可以保证贴出来了你拿了就能用的,要看你用什么服务器,什么数据库,机器名(IP),用户名、密码……,再说这里提倡的是问问题——解答问题,不是给分数——换代码。你要的省市选择脚本可以看看:
    http://expert.csdn.net/Expert/topic/1093/1093697.xml?temp=.8254511
      

  6.   

    nebula (南湖畔的深蓝):严重抱歉,忘了改版后的csdn把搜索页面也放进框架了,上面给出的连接没有用。你用关键字“下拉”来搜索论坛吧。
      

  7.   

    season_fly(一望无际的鸟)说的对,很简单的问题
     如果数据量不大就都读出来,否则每次选择都要连接服务器,有这个必要吗,如果要这样做,那就用<iframe>,在你选择后,在这个iframe里执行查询,然后改变对应的下拉表里的值就可以,上面的例子已经告诉你如何删除和添加option,这个会了就没有什么难的了吧
      

  8.   

    1.
    省市关联下拉框
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>emu</title>
    <script defer>
    var ar = 
    [[["安徽省"],["安庆市","蚌埠市","巢湖市","池州市","滁州市","阜阳市","毫州市","合肥市","淮北市","淮南市","黄山市","六安市","马鞍山市","宿州市","铜陵市","芜湖市","宣州市"]],[["澳门"],["澳门"]],[["北京市"],["北京市"]],[["福建省"],["福州市","龙岩市","南平市","宁德市","莆田市","泉州市","三明市","厦门市","漳州市"]],[["甘肃省"],["白银市","定西地区","甘南自治州","嘉峪关市","金昌市","酒泉地区","兰州市","临夏自治州","陇南地区","平凉地区","庆阳地区","天水市","武威市","张掖地区"]],[["广东省"],["深圳市","潮州市","东莞市","佛山市","广州市","河源市","惠州市","江门市","揭阳市","茂名市","梅州市","清远市","汕头市","汕尾市","韶关市","阳江市","云浮市","湛江市","肇庆市","中山市","珠海市"]],[["广西"],["百色地区","北海市","防城港市","桂林地区","桂林市","贵港市","河池地区","柳州地区","柳州市","南宁市","南宁地区","钦州市","贺州地区","梧州市","玉林市"]],[["贵州省"],["安顺市","毕节地区","贵阳市","六盘水市","黔东南自治州","黔南自治州","黔西南自治州","铜仁市","遵义市"]],[["海南省"],["海口市","三亚市"]],[["河北省"],["保定地区","保定市","沧州地区","沧州市","承德地区","承德市","邯郸市","衡水市","廊坊市","秦皇岛市","深州市","石家庄市","唐山市","邢台地区","邢台市","张家口地区","张家口市"]],[["河南省"],["安阳市","鹤壁市","焦作市","开封市","洛阳市","南阳市","平顶山市","三门峡市","商丘市","新乡市","信阳市","许昌市","郑州市","周口市","驻马店市","漯河市","濮阳市"]],[["黑龙江"],["大庆市","大兴安岭","哈尔滨市","鹤岗市","黑河地区","黑河市","鸡西市","佳木斯市","牡丹江市","七台河市","齐齐哈尔市","双鸭山市","松花江地区","绥化市","伊春市"]],[["湖北省"],["鄂州市","恩施自治州","黄冈市","黄石市","荆门市","荆州市","十堰市","随州市","武汉市","咸宁市","襄樊市","孝感地区","孝感市","宜昌地区","宜昌市","郧阳地区"]],[["湖南省"],["常德市","长沙市","郴州地区","张家界市","衡阳市","怀化市","永州市","娄底市","邵阳市","湘潭市","湘西自治区","益阳市","岳阳市","株洲市"]],[["吉林省"],["白城地区","白城市","白山市","长春市","浑江市","吉林市","辽源市","四平市","松原市","通化市","延边自治区"]],[["江苏省"],["常州市","淮阴市","连云港市","南京市","南通市","苏州市","宿迁市","泰州市","无锡市","徐州市","盐城市","扬州市","镇江市"]],[["江西省"],["抚州市","赣州市","吉安市","景德镇市","九江市","南昌市","萍乡市","上饶市","新余市","宜春市","鹰潭市"]],[["辽宁省"],["鞍山市","本溪市","朝阳市","大连市","丹东市","抚顺市","阜新市","葫芦岛市","锦州市","辽阳市","盘锦市","沈阳市","铁岭市","营口市"]],[["内蒙古"],["阿拉善盟","巴彦淖尔盟","包头市","赤峰市","呼和浩特市","呼伦贝尔市","乌海市","乌兰察布盟","锡林郭勒盟","兴安盟","鄂尔多斯市","通辽市"]],[["宁夏"],["固原市","石嘴山市","银川市","吴忠市"]],[["青海省"],["果洛自治州","海北自治州","海东地区","海南自治州","海西自治州","黄南自治州","西宁市","玉树自治州"]],[["山东省"],["滨州市","德州市","东营市","菏泽地区","济南市","济宁市","莱芜市","聊城市","临沂市","青岛市","日照市","泰安市","威海市","潍坊市","烟台市","枣庄市","淄博市"]],[["山西省"],["长治市","大同市","晋城市","晋中市","临汾市","吕梁地区","朔州市","太原市","忻州市","雁北地区","阳泉市","运城市"]],[["陕西省"],["安康市","宝鸡市","汉中市","商洛市","铜川市","渭南市","西安市","咸阳市","延安市","榆林市"]],[["上海市"],["上海市"]],[["四川省"],["阿坝自治州","巴中市","成都市","达州市","德阳市","甘孜自治州","广安市","广元市","乐山市","凉山自治州","眉山市","绵阳市","南充市","内江市","攀枝花市","遂宁市","雅安市","宜宾市","自贡市","泸州市","资阳市"]],[["台湾"],["高雄市","高雄县","花莲县","基隆市","嘉义市","嘉义县","苗栗县","南投县","澎湖县","屏东县","台北市","台北县","台东县","台南市","台南县","台中市","台中县","桃园县","新竹市","新竹县","宜兰县","云林县","彰化市","彰化县"]],[["天津市"],["天津市"]],[["西藏"],["阿里地区","昌都地区","拉萨市","林芝地区","那曲地区","日喀则地区","山南地区"]],[["香港"],["香港"]],[["新疆"],["阿克苏地区","阿勒泰地区","巴音郭楞州","博尔塔拉州","昌吉自治州","哈密地区","和田地区","喀什地区","克拉玛依市","克孜勒州","石河子市","塔城地区","吐鲁番地区","乌鲁木齐市","伊犁地区"]],[["云南省"],["保山市","楚雄自治州","大理自治州","德宏自治州","迪庆自治州","东川市","红河自治州","昆明市","丽江地区","临沧地区","怒江自治州","曲靖市","思茅地区","文山自治州","西双版纳州","玉溪市","昭通市"]],[["浙江省"],["杭州市","湖州市","嘉兴市","金华市","丽水市","宁波市","绍兴市","台州市","温州市","舟山市","衢州市"]],[["重庆市"],["重庆市"]]];for (var i=0;i<ar.length;i++)
    {
    var op = new Option();
    op.innerText = ar[i][0]
    prov.insertBefore(op)
    }
    function provChanged()
    {
    var i = prov.selectedIndex;
    with (city)
    while (options.length>0)
    removeChild(lastChild)
    for (var j=0;j<ar[i][1].length;j++)
    {
    var op = new Option();
    op.innerText = ar[i][1][j]
    city.insertBefore(op)
    }
    }
    provChanged();function show()
    {
    with (city)
    var c=options[selectedIndex].innerText
    with (prov)
    var p=options[selectedIndex].innerText
    var result=(p==c)?p:p+c
    alert(result)
    }
    </script>
    </head>
    <body>
    <select id=prov style="width:100" onchange="provChanged()"></select>
    <select id=city style="width:100"></select>
    <button onclick="show()">test</button>
    </body>
    </html>
      

  9.   

    2.数据库动态生成function ch(selectedids,n)
     { 
       var selectedvalue=selectedids
      var i
      var t=0
      document.form1.s2.length=0
      for(i=0;i<n;i++)
       {
        if(subcat[i][0]==selectedvalue)
         {
          document.form1.s2.options[t]=new Option(subcat[i][1],subcat[i][2])
          t=t+1
           }
      }
          }
        function check()
        { 
         if (document.form1.s1.options.selectedIndex==0)
         {
          alert("请先选择类别")
          document.form1.s1.focus()
          return false
          }
          return true
          }
         /*  function beginT(){
       var t=window.showModalDialog("../calendar/calendar.htm",null,"dialogWidth:208px;dialogHeight:240px;status:no;help:no");
         if (t!=null){
          document.form1.T_in.value=t;
        }
       return;
    }*/ </script>
    </head>
    <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <table width="780" border="0" cellspacing="0" cellpadding="0" height="38%" bordercolorlight="#000000" bordercolordark="#FFFFFF">
    <tr>
    <td width="19%" valign="top" bgcolor="#FFCC00"> <!--#include file="menu3.asp" -->
    </td>
    <td width="81%" height="478" valign="top">
    <form name="form1" method="post" action="do_mod.asp" onsubmit="return datacheck()">
    <table width="100%" border="0">
    <tr bgcolor="#E6E0FE">
    <td width="12%" align="center">
    物品类别
    </td>
    <td colspan="6">
    <script language="javascript">
    var subcat=new Array() <%dim n
      n=0
     set rs=server.CreateObject("adodb.recordset")
     rs.ActiveConnection=conn
     rs.Source="select a.T_catid,a.T_name as xx ,a.T_id from cos_T_manage a join cos_T_catagery b on a.T_catid=b.T_id"
     rs.CursorType=1
     rs.LockType=1
     rs.Open
       do while not rs.EOF%>
        subcat[<%=n%>]=new Array("<%=rs("T_catid")%>","<%=rs("xx")%>","<%=rs("T_id")%>")
        <%n=n+1
       rs.movenext
       loop%>
    </script>
    <select name="s1" onchange="ch(this.options[this.selectedIndex].value,<%=n%>)">
    <option value="0">
    --请选择--</option>
    <%set rsd=server.CreateObject("adodb.recordset")
      rsd.ActiveConnection=conn
      rsd.Source="select T_id,T_name from cos_t_catagery"
      rsd.Open
      do while not rsd.EOF 
      %>
    <option value="<%=rsd("T_id")%>">
    <%=rsd("T_name")%>
    </option>
    <%rsd.MoveNext
      loop%>
    </select>
    </td>
    </tr>
    <tr bgcolor="#E6E0FE">
    <td width="12%" align="center">
    物品名称
    </td>
    <td colspan="6">
    <select name="s2" onclick="check()"> </select>
    </td>
    </tr>
      

  10.   

    我写了一个动态变化的,用数据库的,大家看看:贴子:http://expert.csdn.net/Expert/topic/1128/1128376.xml?temp=.6944239下载:
    http://www.great-tax.com/province.rar