日期:2008-11-23  浏览次数:21085 次

          关于如何动态地在同一页面实现两个<select>互传  (s1 <==> s2)

     
                     (jaklin   2000.9.12)
    

    hello! 先祝大家中秋节快乐!

    我们常常会碰到这样一个问题: 如何将在同一页面上的一个<select>或<listbox>的值传到另一个<select>或<listbox>中 ?这是一个很烦人的问题。可是有时候你偏偏会遇到。 那什么办呢?

     下面是我“烟酒”了一个上午, 现贴上来让大家共享。 用的方法是很笨也挺麻烦。不过总是有点成就感的。呵呵!大家看看, 指点指点.....

<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<script language="vbscript">

</script>
<body bgcolor="#ffffff">
<form name="form1"  action="test01.ASP" target="_self">
<p><TEXTAREA id=text01 name=text01></TEXTAREA></p>
<table>
   <tr>
     <td>
       <select name="select1" language="javascript" size=5>
    <option value=11111>11111</option>
    <option value=22222>22222</option>
    <option value=33333>33333</option>
       </select>
     </td>
     <td>
    <label onClick=do_select()><font color=#ff00dc><u>->> </u></font> </label><br><br>
    <label onClick=do_select2()><font color=#ff00dc><u><<- </u></font> </label>
     </td>
    <%  
     str="function do_select() {" & vbCrlf & _
             "if (document.form1.select1.options.length > 0) {"&vbCrlf&_
         "var j=0;"&vbCrlf&_
         "for(var i=0;i<document.form1.select1.options.length;i++) {"&vbCrlf & _
         "if(document.form1.select1.options(i).selected) {"&vbCrlf& _
             "j=j+1; break" & vbCrlf & "}"&vbCrlf & "}"&vbCrlf& _
         "if (j > 0) {"&vbCrlf&_                    "document.form1.sel2.options[document.form1.sel2.options.length] = new Option(" &  _
              "document.form1.select1.options[document.form1.select1.selectedIndex].value,"  & _
              "document.form1.select1.options[document.form1.select1.selectedIndex].value);"& vbCrlf
    Response.Write "<td><SELECT id=sel2  name=sel2 size=5&