select不行,可以用列表框,它可以多选

解决方案 »

  1.   

    select不行,可以用列表框,它可以多选
      

  2.   

    可以多选呀:
    <select name="D1" multiple>
    ........
      

  3.   

    <select name=sltTest size=10 multiple>
    ......
    </select>
    size表示显示的行数。
      

  4.   

    不明白这个select相关联是什么意思?
      

  5.   

    <script>
    function compare()
    {
    var football=new Array();
    football[0]="1234";
    football[1]="123";
    football[2]="12";
    football[3]="34";
    str="";
    for(i=0;i<document.all.people.options.length;i++)
    if(document.all.people.options[i].selected)
    str+=document.all.people.options[i].value;
    for(i=0;i<4;i++)
    {
    if(str==football[i])
    {
    document.all.level.selectedIndex=i;
    break;
    }
    }
    if(i==4)
    document.all.level.selectedIndex=i-1;
    }
    </script>
    choice people: 
    <select name=people multiple onchange=compare()>
    <option value=1>ballack
    <option value=2>kahn
    <option value=3>ziege
    <option value=4>klose
    </select>
    level:
    <select name=level>
    <option value=1>highest
    <option value=2>higher
    <option value=3>high
    <option value=4>normal
    </select>
      

  6.   

    不好意思,可能我没讲清楚,举个例子:
      第一个select框或下拉框,出项数据库中所存在的省份,任意选定其中的多个(注意是多个噢!),第二个select框或下拉框会出现所选省份所包含的城市?
    谁做过此类程序?请教高手!!
      

  7.   

    不好意思,可能我没讲清楚,举个例子:
      第一个select框或下拉框,出项数据库中所存在的省份,任意选定其中的多个(注意是多个噢!),第二个select框或下拉框会出现所选省份所包含的城市?
    谁做过此类程序?请教高手!!
      

  8.   

    我有,可程序太长了,留email给我,我给你发
      

  9.   

    这个要用到数据库。。单是用js的话,要定义很多数组的,麻烦。就是要用到select的onchange事件。
      

  10.   

    呵呵flylyke(爱就像英雄莫问出处)的就不用数据库。编的时候麻烦一点,可是一次编写到处运行啊。
      

  11.   

    谢谢flylyke(爱就像英雄莫问出处)!,我的EMAIL为:[email protected] .等待你的邮件以解燃眉之急!
      

  12.   

    <script>
    function mysel()
    {
    var cities=new Array();
    cities[0]=new Array("changsha","changde","yueyang");
    cities[1]=new Array("wuhan","huangshi","yichang");
    cities[2]=new Array("guangzhou","shenzhen");
    cities[3]=new Array("nanning","liuzhou");
    str="";
    document.all.city.options.length=0;
    for(i=0;i<document.all.province.options.length;i++)
    {
    if(document.all.province.options[i].selected)
    {
    for(j=0;j<cities[i].length;j++)
    {
    document.all.city.options.length++;
    document.all.city.options[document.all.city.options.length-1].value=cities[i][j];
    document.all.city.options[document.all.city.options.length-1].text=cities[i][j];
    }
    }
    }
    }
    </script>
    choice province: 
    <select name=province multiple onchange=mysel()>
    <option value=1>hunan
    <option value=2>hubei
    <option value=3>guangdong
    <option value=4>guangxi
    </select>
    city:
    <select name=city>
    <option value=changsha>changsha
    <option value=changde>changde
    <option value=yueyang>yueyang
    </select>
      

  13.   

    <script>
    <!--
    /* 切换国家对应省所用的函数 */
    function populateSheng()
    {
    pri = main.country.options(main.country.selectedIndex).value;
    var oXMLDoc = new ActiveXObject('MSXML');
    sURL = 'http://210.192.103.40/HAS_Client/UserReg/change_place_dshxml.asp?pri=' + pri;

    oXMLDoc.url = sURL;
    var oRoot=oXMLDoc.root;
    if(oRoot.children != null)
    {   
    //删除省选择框中的所有选项
    for(var i=main.province.options.length-1;i>=0;--i)
    {
    main.province.options.remove(i)
    }
    var i=0;
    //往省选择框中增加选项
    while (i<oRoot.children.length)
    {
    oval = oRoot.children.item(i);
    i=i+1;
    oname = oRoot.children.item(i);
    sval = oval.text;
    sname = oname.text;
    var oOption = document.createElement('OPTION');
    oOption.text = sname;
    oOption.value = sval;
    main.province.options.add(oOption);
    i=i+1;
    }

    //删除市选择框中的所有选项
    for(var i=main.city.options.length-1;i>=0;--i)
    {
    main.city.options.remove(i)
    }
    //往市选择框中增加选项
    var oOption1 = document.createElement('OPTION');
    oOption1.text = "请选择";
    oOption1.value = 0;
    main.city.options.add(oOption1);
    }
    } /* 切换省对应市所用的函数 */
    function populateCity()
    {
    pri = main.province.options(main.province.selectedIndex).value;
    var oXMLDoc = new ActiveXObject('MSXML');    
    sURL = 'http://210.192.103.40/HAS_Client/UserReg/change_place_dchxml.asp?pri=' + pri;

    oXMLDoc.url = sURL;
    var oRoot=oXMLDoc.root;
    if(oRoot.children != null)
    {   
    //删除市选择框中的所有选项
    for(var i=main.city.options.length-1;i>=0;--i)
    {
    main.city.options.remove(i)
    }
    var i=0;
    //往市选择框中增加选项
    while (i<oRoot.children.length)
    {
    oval = oRoot.children.item(i);
    i=i+1;
    oname = oRoot.children.item(i);
    sval = oval.text;
    sname = oname.text;
    var oOption = document.createElement('OPTION');
    oOption.text = sname;
    oOption.value = sval;
    main.city.options.add(oOption);
    i=i+1;
    }
    }
    }
    //-->
    </script><body>
    <form name="main" method="post">
         国家或地区:<select id=country name=country size=1 onchange=populateSheng()>
                          <option selected value="">请选择</option>
                          <option value=中国>中国</option>
                          <option value=中国香港>中国香港</option>
                          <option value=中国台湾>中国台湾</option>                      <option value=中国澳门>中国澳门</option>
                          <option value=其它>其它</option>
          </select>     省、直辖市:<select id=province name=province size=1 onchange=populateCity()>
                          <option selected value=0>请选择</option>
         </select>     省辖各地区:<select name="city">
                          <option value=0>请选择</option>
         </select>
    </form>Copy过去就可以用啦 。。呵呵。。盗用了万网的东东。。不过NS不支持这个哦。
    如果出现拒绝访问的错误,那就只好自己写程序输出xml啦
      

  14.   

    我那个已经实现了省和市了啊..再加个客户也不难啊..自己写个asp输出xml的客户的程序不就可以了....程序是要自己改的啊.
    别人主要是为你提供一点思路,解决关键性的问题就可以了的.
      

  15.   

    ok, i will try it。不过javascript好像不能实现和数据库相连的操作吧?
      

  16.   

    js如果完全在本地操作是可以和数据库连接的,不过在网上就不行了。不允许穿越域。但是js不需要和数据库连接啊。asp和数据库连接就可以了,asp从数据库中取出结果,输出为xml结构,js再用xml获取,然后再转化成列表中的子项就可以实现你的目的的。
      

  17.   

    我是用.NET开发的,现在有新问题:
      我定义了一个数组string [][] CitiesArray = new string[i][],实现选择ProvinceList框的一项可以从数据库中取得对应的城市集,但如何在HTML中用javascript来利用到这个数组来得到相应的城市?语法老是通不过:(
      

  18.   

    .Net时用客户端脚本编程确实不太好用那你为什么不直接用aspx呢?
      

  19.   


    <html>
    <head> 
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body bgcolor=#FFFFFF alink=#333333 vlink=#333333 link=#333333 topmargin=0 leftmargin=0><form action="http://www.chinaleader.com/cgi-bin/register.cgi" method=post name="creator" enctype="multipart/form-data"><script language="javascript">
    <!--
    var where = new Array(35); 
    function comefrom(loca,locacity) { this.loca = loca; this.locacity = locacity; } 
    where[0]= new comefrom("请选择省份名","请选择城市名");
    where[1] = new comefrom("北京","|东城|西城|崇文|宣武|朝阳|丰台|石景山|海淀|门头沟|房山|通州|顺义|昌平|大兴|平谷|怀柔|密云|延庆"); 
    where[2] = new comefrom("上海","|黄浦|卢湾|徐汇|长宁|静安|普陀|闸北|虹口|杨浦|闵行|宝山|嘉定|浦东|金山|松江|青浦|南汇|奉贤|崇明"); 
    where[3] = new comefrom("天津","|和平|东丽|河东|西青|河西|津南|南开|北辰|河北|武清|红挢|塘沽|汉沽|大港|宁河|静海|宝坻|蓟县"); 
    where[4] = new comefrom("重庆","|万州|涪陵|渝中|大渡口|江北|沙坪坝|九龙坡|南岸|北碚|万盛|双挢|渝北|巴南|黔江|长寿|綦江|潼南|铜梁|大足|荣昌|壁山|梁平|城口|丰都|垫江|武隆|忠县|开县|云阳|奉节|巫山|巫溪|石柱|秀山|酉阳|彭水|江津|合川|永川|南川"); 
    where[5] = new comefrom("河北","|石家庄|邯郸|邢台|保定|张家口|承德|廊坊|唐山|秦皇岛|沧州|衡水"); 
    where[6] = new comefrom("山西","|太原|大同|阳泉|长治|晋城|朔州|吕梁|忻州|晋中|临汾|运城"); 
    where[7] = new comefrom("内蒙古","|呼和浩特|包头|乌海|赤峰|呼伦贝尔盟|阿拉善盟|哲里木盟|兴安盟|乌兰察布盟|锡林郭勒盟|巴彦淖尔盟|伊克昭盟"); 
    where[8] = new comefrom("辽宁","|沈阳|大连|鞍山|抚顺|本溪|丹东|锦州|营口|阜新|辽阳|盘锦|铁岭|朝阳|葫芦岛"); 
    where[9] = new comefrom("吉林","|长春|吉林|四平|辽源|通化|白山|松原|白城|延边"); 
    where[10] = new comefrom("黑龙江","|哈尔滨|齐齐哈尔|牡丹江|佳木斯|大庆|绥化|鹤岗|鸡西|黑河|双鸭山|伊春|七台河|大兴安岭"); 
    where[11] = new comefrom("江苏","|南京|镇江|苏州|南通|扬州|盐城|徐州|连云港|常州|无锡|宿迁|泰州|淮安"); 
    where[12] = new comefrom("浙江","|杭州|宁波|温州|嘉兴|湖州|绍兴|金华|衢州|舟山|台州|丽水"); 
    where[13] = new comefrom("安徽","|合肥|芜湖|蚌埠|马鞍山|淮北|铜陵|安庆|黄山|滁州|宿州|池州|淮南|巢湖|阜阳|六安|宣城|亳州"); 
    where[14] = new comefrom("福建","|福州|厦门|莆田|三明|泉州|漳州|南平|龙岩|宁德"); 
    where[15] = new comefrom("江西","|南昌市|景德镇|九江|鹰潭|萍乡|新馀|赣州|吉安|宜春|抚州|上饶"); 
    where[16] = new comefrom("山东","|济南|青岛|淄博|枣庄|东营|烟台|潍坊|济宁|泰安|威海|日照|莱芜|临沂|德州|聊城|滨州|菏泽"); 
    where[17] = new comefrom("河南","|郑州|开封|洛阳|平顶山|安阳|鹤壁|新乡|焦作|濮阳|许昌|漯河|三门峡|南阳|商丘|信阳|周口|驻马店|济源"); 
    where[18] = new comefrom("湖北","|武汉|宜昌|荆州|襄樊|黄石|荆门|黄冈|十堰|恩施|潜江|天门|仙桃|随州|咸宁|孝感|鄂州");
    where[19] = new comefrom("湖南","|长沙|常德|株洲|湘潭|衡阳|岳阳|邵阳|益阳|娄底|怀化|郴州|永州|湘西|张家界"); 
    where[20] = new comefrom("广东","|广州|深圳|珠海|汕头|东莞|中山|佛山|韶关|江门|湛江|茂名|肇庆|惠州|梅州|汕尾|河源|阳江|清远|潮州|揭阳|云浮"); 
    where[21] = new comefrom("广西","|南宁|柳州|桂林|梧州|北海|防城港|钦州|贵港|玉林|南宁地区|柳州地区|贺州|百色|河池"); 
    where[22] = new comefrom("海南","|海口|三亚"); 
    where[23] = new comefrom("四川","|成都|绵阳|德阳|自贡|攀枝花|广元|内江|乐山|南充|宜宾|广安|达川|雅安|眉山|甘孜|凉山|泸州"); 
    where[24] = new comefrom("贵州","|贵阳|六盘水|遵义|安顺|铜仁|黔西南|毕节|黔东南|黔南"); 
    where[25] = new comefrom("云南","|昆明|大理|曲靖|玉溪|昭通|楚雄|红河|文山|思茅|西双版纳|保山|德宏|丽江|怒江|迪庆|临沧");
    where[26] = new comefrom("西藏","|拉萨|日喀则|山南|林芝|昌都|阿里|那曲"); 
    where[27] = new comefrom("陕西","|西安|宝鸡|咸阳|铜川|渭南|延安|榆林|汉中|安康|商洛"); 
    where[28] = new comefrom("甘肃","|兰州|嘉峪关|金昌|白银|天水|酒泉|张掖|武威|定西|陇南|平凉|庆阳|临夏|甘南"); 
    where[29] = new comefrom("宁夏","|银川|石嘴山|吴忠|固原"); 
    where[30] = new comefrom("青海","|西宁|海东|海南|海北|黄南|玉树|果洛|海西"); 
    where[31] = new comefrom("新疆","|乌鲁木齐|石河子|克拉玛依|伊犁|巴音郭勒|昌吉|克孜勒苏柯尔克孜|博尔塔拉|吐鲁番|哈密|喀什|和田|阿克苏"); 
    where[32] = new comefrom("香港",""); 
    where[33] = new comefrom("澳门",""); 
    where[34] = new comefrom("台湾","|台北|高雄|台中|台南|屏东|南投|云林|新竹|彰化|苗栗|嘉义|花莲|桃园|宜兰|基隆|台东|金门|马祖|澎湖"); 
    where[35] = new comefrom("其它","|北美洲|南美洲|亚洲|非洲|欧洲|大洋洲"); 
    function select() {
    with(document.creator.province) { var loca2 = options[selectedIndex].value; }
    for(i = 0;i < where.length;i ++) {
    if (where[i].loca == loca2) {
    loca3 = (where[i].locacity).split("|");
    for(j = 0;j < loca3.length;j++) { with(document.creator.city) { length = loca3.length; options[j].text = loca3[j]; options[j].value = loca3[j]; var loca4=options[selectedIndex].value;}}
    break;
    }}
    document.creator.newlocation.value=loca2+loca4;
    }
    function init() {
    with(document.creator.province) {
    length = where.length;
    for(k=0;k<where.length;k++) { options[k].text = where[k].loca; options[k].value = where[k].loca; }
    options[selectedIndex].text = where[0].loca; options[selectedIndex].value = where[0].loca;
    }
    with(document.creator.city) {
    loca3 = (where[0].locacity).split("|");
    length = loca3.length;
    for(l=0;l<length;l++) { options[l].text = loca3[l]; options[l].value = loca3[l]; }
    options[selectedIndex].text = loca3[0]; options[selectedIndex].value = loca3[0];
    }}
    -->
    </script>
    <body onload="init()">
    <font color=#000000><b>来自:</b><br>请输入您所在国家的具体地方。此项可选<br><br>
    省份 <select name="province" onChange = "select()"></select> 城市 <select name="city" onChange = "select()"></select><br>
    我在 <input type=text name="newlocation" maxlength=12 size=12 style="font-weight: bold"> 不能超过12个字符(6个汉字)
    </form>
      

  20.   

    我是在服务器端实现的省和市的对应关系,只是不知怎么在客户端用到所得出的省市的数组?也就是如何将省市在JAVASCRIPT表示出来?
      

  21.   

    to: 51windows(海娃)
      我现在最大的问题在于:如何实现客户端和服务器端的数据交互?也就是如何在html中可以将cityArray的数组以实例的形式表现出来?
      

  22.   

    我在想,要是有一个人做了这么一个WEB SERVICE那就爽了。。
      

  23.   

    用xml文档实现很简单的。