<?xml version="1.0" encoding="GB2312" ?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" /> 
<SCRIPT LANGUAGE="javascript">
<xsl:comment>
<![CDATA[ 
function mysubmit()
{
selstr="";
for(i=0;i<document.all.mysel.options.length;i++)
if(document.all.mysel.options[i].selected)
selstr+=document.all.mysel.options[i].value+";";
alert(selstr);
}
]]> 
</xsl:comment>
</SCRIPT>
</head>
<body>
<select name="mysel" size="10" multiple="multiple">
<xsl:for-each select="RTS/RT">
<option>
<xsl:attribute name="value">
<xsl:value-of select="PYM"/> 
</xsl:attribute>
<xsl:value-of select="DM"/>
<xsl:value-of select="DMYY"/>
</option> 
</xsl:for-each>
</select>
<input type="button" value="submit" onclick="mysubmit()"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

解决方案 »

  1.   

    參考xml-DSO
    xml-dso是一種前端技朮.
    http://msdn.microsoft.com/library/default.asp?url=/workshop/author/databind/data_ binding_node_entry.asp?frame=true
       <XML ID="employeeDB"><employeeDB>
       <employes>
     <tttt>
                  <aaa>aaa</aaa>
      <bbb>bbb</bbb>
     </tttt>
     <tttt>
                  <aaa>ccc</aaa>
      <bbb>ddd</bbb>
     </tttt>
     <name>Brett Butler</name>
     <department>R &amp;D</department>
     <position>Director</position>
     <salary>50000</salary>
     <phone>12345</phone>
     <email>[email protected]</email>
       </employes>
       <employes>
     <name>Brian Butler</name>
     <department>Marketing</department>
     <position>Director</position>
     <salary>75000</salary>
     <phone>x3210</phone>
     <email>[email protected]</email>
       </employes>
       </employeeDB></XML><HTML>
      <HEAD>
        <TITLE>this is Dso test</TITLE>
    <script language="javascript">
      function setXml(){
           var xmldoc=employeeDB.XMLDocument;
               var rs=employeeDB.recordset; 
                   rs1=rs("tttt").value;
       rs1.MoveNext();
       alert(rs1("bbb").value);
                   
    //    var root=xmldoc.documentElement;
    //    var node=root.childNodes(0);
    //    var node1=node.cloneNode(true);
    //          rs.MoveNext();
    //    for(var i=0;i<node1.childNodes.length;i++)
    //        node1.childNodes(i).text="";
    //          root.appendChild(node1);
    //           top.close();
    //           window.open("dsoxml.html",10,10);
    //          alert(employeeDB.firstChild.firstChild.xml);
      }
    </script>
      </HEAD>
      <BODY>
    <FORM name="tt">
    <TABLE datasrc="#employeeDB">
      <td><input name="xx" datafld="name"></td>
      <td><input datafld="department"></td>
      <td><input datafld="email"></td>
      <td><input datafld="salary"></td>
      <td><input datafld="phone"></td>
    </TABLE>
    <br></br> <input type="button" onclick="setXml()" size="200" value="Set">
    </form>
      </BODY>
    </HTML>
    <html></html>
      

  2.   

    楼主:你运行一下,多选后,点击submit按钮就可以获取选项的组合,还有不清楚的吗
      

  3.   

    seabell(百合心) :
      首先感谢您的帮助!
      我想要的效果是:在页面上显示的是只有一个下拉按扭的那种单选下拉框的效果,但要实现多选的功能!
      
      在这个只显示一个选中的OPTION的SELECT下拉列表框中(这个列表框里的OPTION也要按代码和代码意义分两列显示),用户点击唯一的下拉按钮后弹出的下拉列表框最好的效果如下:
    代码 代码意义 
     0   未知的性别 
     1   男 
     2   女 
     3   未说明的性别 
    在SELECT下拉列表框中第一列显示代码,第二列显示代码意义,用户点击列表框中某个代码意义,实际提交上去的是这个代码意义对应的代码!而且可以多选,选中的每个代码之间用分号隔开!  而不是多选下拉框那种随着SIZE的不同出现两个按扭,或没有按扭的那种效果!
      

  4.   

    seabell(百合心) :
      首先感谢您的帮助!
      根据最新客户需求要得到的效果是:
       
      在页面上显示一个文本输入框<INPUT TYPE=“TEXT”></INPUT>,当它一获得焦点时弹出一个下拉列表框,下拉列表框的内容还是从指定的XML文件(SEX.XML)中读取,类似select单选下拉框那种的效果,还要实现多选的功能!
      
      这个下拉列表框(这个列表框里的OPTION也要按代码和代码意义分两列显示)最好的效果如下:代码 代码意义 
     0   未知的性别 
     1   男 
     2   女 
     3   未说明的性别 
    在下拉列表框中第一列显示代码,第二列显示代码意义,用户点击下拉列表框中某个代码意义,单击后被点击的代码意义就会出现在那个文本框中,而且可以多选,选中的每个代码意义之间用分号隔开!最后把在文本输入框中出现的所有代码意义所对应的代码一起提交上去! sex.xml
    <?xml version="1.0" encoding="gb2312"?>
    <RTS>
     <RT>
      <DM>0</DM>
      <DMYY>未知的性别</DMYY> 
      <PYM>unknown</PYM>
     </RT>
     <RT>
      <DM>1</DM>
      <DMYY>男</DMYY>
      <PYM>male</PYM>
     </RT>
     <RT> 
      <DM>2</DM>
      <DMYY>女</DMYY>
      <PYM>female</PYM>
     </RT>
            <RT> 
      <DM>9</DM>
      <DMYY>未说明的性别</DMYY>
      <PYM>unknown</PYM>
     </RT>
      

  5.   

    <?xml version="1.0" encoding="GB2312"?>
    <?xml-stylesheet type='text/xsl' href='sex.xsl'?>
    <RTS>
     <RT>
      <DM>0</DM>
      <DMYY>未知的性别</DMYY> 
      <PYM>unknown</PYM>
     </RT>
     <RT>
      <DM>1</DM>
      <DMYY>男</DMYY>
      <PYM>male</PYM>
     </RT>
     <RT> 
      <DM>2</DM>
      <DMYY>女</DMYY>
      <PYM>female</PYM>
     </RT>
     <RT> 
      <DM>9</DM>
      <DMYY>未说明的性别</DMYY>
      <PYM>unknown</PYM>
     </RT>
    </RTS>sex.xsl
    <?xml version="1.0" encoding="GB2312" ?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" /> 
    <SCRIPT LANGUAGE="javascript">
    <xsl:comment>
    <![CDATA[ 
    function myselect()
    {
    selstr=document.all.mytext.value;
    for(i=1;i<document.all.mysel.options.length;i++)
    if(document.all.mysel.options[i].selected)
    selstr+=document.all.mysel.options[i].value+";";
    //alert(selstr);
    document.all.mytext.value=selstr;
    }
    ]]> 
    </xsl:comment>
    </SCRIPT>
    </head>
    <body>
    <input type="text" name="mytext" size="40" onfocus="document.all.mysel.style.display='block'"/><br/>
    <select name="mysel" style="display:none" onchange="myselect()">
    <option>代码 代码意义</option>
    <xsl:for-each select="RTS/RT">
    <option>
    <xsl:attribute name="value">
    <xsl:value-of select="DMYY"/> 
    </xsl:attribute>
    <xsl:value-of select="DM"/>
    <xsl:value-of select="DMYY"/>
    </option> 
    </xsl:for-each>
    </select><br/>
    <input type="button" value="submit"/>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
      

  6.   

    seabell(百合心):
    怎样防止重复代码的添加,并在发现用户提交重复的代码时弹出警告框?!
      

  7.   

    <?xml version="1.0" encoding="GB2312" ?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" /> 
    <SCRIPT LANGUAGE="javascript">
    <xsl:comment>
    <![CDATA[ 
    function myselect()
    {
    selstr=document.all.mytext.value;
    for(i=1;i<document.all.mysel.options.length;i++)
    if(document.all.mysel.options[i].selected)
    {
    if(selstr.indexOf(document.all.mysel.options[i].value)>-1)
    alert("您已经选过了此项!");
    else
    selstr+=document.all.mysel.options[i].value+";";
    }
    //alert(selstr);
    document.all.mytext.value=selstr;
    }
    ]]> 
    </xsl:comment>
    </SCRIPT>
    </head>
    <body>
    <input type="text" name="mytext" size="40" onfocus="document.all.mysel.style.display='block'"/><br/>
    <select name="mysel" style="display:none" onchange="myselect()">
    <option>代码&#160;&#160;代码意义</option>
    <xsl:for-each select="RTS/RT">
    <option>
    <xsl:attribute name="value">
    <xsl:value-of select="DMYY"/> 
    </xsl:attribute>
    <xsl:value-of select="DM"/>&#160;&#160;
    <xsl:value-of select="DMYY"/>
    </option> 
    </xsl:for-each>
    </select><br/>
    <input type="button" value="submit"/>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
      

  8.   

    <?xml version="1.0" encoding="GB2312" ?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" /> 
    <SCRIPT LANGUAGE="javascript">
    <xsl:comment>
    <![CDATA[ 
    function myselect()
    {
    selstr=document.all.mytext.value;
    for(i=1;i<document.all.mysel.options.length;i++)
    if(document.all.mysel.options[i].selected)
    {
    if(document.all.myradio[1].checked)
    {
    if(selstr.indexOf(document.all.mysel.options[i].value)>-1)
    alert("您已经选过了此项!");
    else
    selstr+=document.all.mysel.options[i].value+";";
    }
    else
    {
    selstr=document.all.mysel.options[i].value;
    break;
    }
    }
    //alert(selstr);
    document.all.mytext.value=selstr;
    }
    ]]> 
    </xsl:comment>
    </SCRIPT>
    </head>
    <body>
    <input type="text" name="mytext" size="40" onfocus="document.all.mydiv.style.display='block'"/><br/>
    <div id="mydiv" style="display:none">
    <select name="mysel" onchange="myselect()">
    <option>代码&#160;&#160;代码意义</option>
    <xsl:for-each select="RTS/RT">
    <option>
    <xsl:attribute name="value">
    <xsl:value-of select="DMYY"/> 
    </xsl:attribute>
    <xsl:value-of select="DM"/>&#160;&#160;
    <xsl:value-of select="DMYY"/>
    </option> 
    </xsl:for-each>
    </select></div>
    <input type="radio" name="myradio" value="1" checked="checked"/>单选
    <input type="radio" name="myradio" value="2"/>多选
    <input type="button" value="submit"/>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
      

  9.   

    大概改了一下
    <?xml version="1.0" encoding="GB2312" ?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" /> 
    <SCRIPT LANGUAGE="javascript">
    <xsl:comment>
    <![CDATA[ 
    function myselect()
    {
    selstr=document.all.mytext.value;
    for(i=1;i<document.all.mysel.options.length;i++)
    if(document.all.mysel.options[i].selected)
    {
    if(document.all.myradio[1].checked)
    {
    if(selstr.indexOf(document.all.mysel.options[i].value)>-1)
    alert("您已经选过了此项!");
    else
    //selstr+=document.all.mysel.options[i].value+";";
    selstr+=document.all.mycon.value+" "+document.all.mysel.options[i].value+" ";
    }
    else
    {
    selstr=document.all.mysel.options[i].value;
    break;
    }
    }
    //alert(selstr);
    document.all.mytext.value=selstr;
    }
    ]]> 
    </xsl:comment>
    </SCRIPT>
    </head>
    <body>
    <input type="text" name="mytext" size="40" onfocus="document.all.mydiv.style.display='block'"/><br/>
    <div id="mydiv" style="display:none">
    <select name="mysel" onchange="myselect()">
    <option>代码&#160;&#160;代码意义</option>
    <xsl:for-each select="RTS/RT">
    <option>
    <xsl:attribute name="value">
    <xsl:value-of select="DMYY"/> 
    </xsl:attribute>
    <xsl:value-of select="DM"/>&#160;&#160;
    <xsl:value-of select="DMYY"/>
    </option> 
    </xsl:for-each>
    </select>
    <select name="mycon"><option value="and">and</option><option value="or">or</option></select>
    </div>
    <input type="radio" name="myradio" value="1"/>单选
    <input type="radio" name="myradio" value="2" checked="checked"/>多选
    <input type="button" value="submit"/>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>