<script language=javascript>
function selstr(){
selstr="";
var options = document.sendtbl.seltbl.options;
for(var j=0;j<options.length;j++)
{
   if(options[j].selected)
selstr=selstr + options[j].value + ","

}document.sendtbl.seloptions.value=selstr;        return true;
}</script><form action="1.asp" method="post" name="sendtbl" id="sendtbl" onsubmit="return selstr()">

解决方案 »

  1.   

    多谢saucer(思归)的回复但这样还是无法实现子函数值selstr的提交 :(
      

  2.   

    将<input type="hidden" name="seloptions">  放在name="sendtbl" 的form里面,否则是无法提交上去的 
    <form action="1.asp(*页面自身*)" method="post" name="sendtbl" id="sendtbl" onsubmit="return selstr();">
    <input type="hidden" name="seloptions"> 
    ......
    ......</form>sendtbl(*表单名称*).seloptions(*表单隐含项名称*).value=selstr因该是document.sendtbl.seloptions.value=selstr;
    或者document.forms[0].seloptions.value=selstr;
      

  3.   

    to: net_lover(孟子E章)
    那我怎样读出选项来呢
    具体点好么?
      

  4.   

    form.asp
    ============
    <%
    dim str
    str=request.form("aa")
    Response.write str
    str=Split(str,",")
    for i=LBound(str) to Ubound(str)
    Response.write "<hr>"
    Response.write str(i)
    Next
    %>
    <form name=f action="form.asp" method="post">
    <select name=aa multiple=true>
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
    <option value="d">d</option>
    <option value="e">e</option>
    </select>
    <input onclick="test()" value="get" type=button>
    </form>
    <SCRIPT>
    function test()
    {
    var str=""for(var i=0;i<document.f.aa.options.length;i++)
    {
    if(document.f.aa.options[i].selected==true)
    str = str + document.f.aa.options[i].value + ","
    }alert(str)
    document.f.submit()
    }
    </SCRIPT>
      

  5.   

    form.asp
    ============
    <%
    dim str
    str=request.form("aa")
    Response.write str
    str=Split(str,",")
    for i=LBound(str) to Ubound(str)
    Response.write "<hr>"
    Response.write str(i)
    Next
    %>
    <form name=f action="form.asp" method="post">
    <select name=aa multiple=true>
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
    <option value="d">d</option>
    <option value="e">e</option>
    </select>
    <input onclick="test()" value="get" type=button>
    </form>
    <SCRIPT>
    function test()
    {
    var str=""for(var i=0;i<document.f.aa.options.length;i++)
    {
    if(document.f.aa.options[i].selected==true)
    str = str + document.f.aa.options[i].value + ","
    }alert(str)
    document.f.submit()
    }
    </SCRIPT>
      

  6.   

    form.asp
    ============
    <%
    dim str
    str=request.form("aa")
    Response.write str
    str=Split(str,",")
    for i=LBound(str) to Ubound(str)
    Response.write "<hr>"
    Response.write str(i)
    Next
    %>
    <form name=f action="form.asp" method="post">
    <select name=aa multiple=true>
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
    <option value="d">d</option>
    <option value="e">e</option>
    </select>
    <input onclick="test()" value="get" type=button>
    </form>
    <SCRIPT>
    function test()
    {
    var str=""for(var i=0;i<document.f.aa.options.length;i++)
    {
    if(document.f.aa.options[i].selected==true)
    str = str + document.f.aa.options[i].value + ","
    }alert(str)
    document.f.submit()
    }
    </SCRIPT>
      

  7.   

    to  zhpfaff(zhp):关于</form>的位置,使我贴子上写错了
    剩下你说的方法我先前也试过,仍然提交不了
      

  8.   

    多谢大家了!!!to  net_lover(孟子E章):
    按你的方法试了一下,还是不可以,我觉得还是在子函数内部字符串变量提交的问题,就是那句话sendtbl(*表单名称*).seloptions(*表单隐含项名称*).value=selstr   出的问题,应该怎样来写这句话,以提交变量。下面是我子函数的内容:
    function selstr(){
    selstr=""
    for(var j=0;j<sendtbl.seltbl.length;j++)
    {
    if(document.all.sendtbl.seltbl.options[j].selected)
    selstr=selstr+sendtbl.seltbl.options[j].value+","
    }
    alert(selstr)sendtbl.seloptions.value=selstr
    sendtbl.submit()
    }</script>不管用的家的什么方法,都可以正确的实现selstr字符串的值,就是
    没有办法把这个值通过表单传出去.
    下面是我在程序中form中的内容。<form action="qq.asp" method="post" name="sendtbl" id="sendtbl" onsubmit="selstr()">
    <table width="80" border="2" cellspacing="0" cellpadding="0" height="145" >
      <tr> 
          
        <td height="20" width="87%" background="pic/title.gif">
        <b><font size="2" face="&Oacute;×&Ocirc;&sup2;">·&cent;&Euml;&Iacute;&Iuml;&ucirc;&Iuml;&cent;</font></b></td>
          <td height="17" width="13%"><img style="CURSOR: hand" src="pic/closeb.gif" width="17" height="17" onClick="window.close()"></td>
        </tr>

    <tr bgcolor="buttonface"> 
          <td height="15" colspan="2" bordercolor="buttonface"> 
            <div align="center"> <font face="&Oacute;×&Ocirc;&sup2;" color="#000000"> &Igrave;&icirc;&ETH;&acute;·&cent;&Euml;&Iacute;&micro;&Auml;&ETH;&Aring;&Iuml;&cent; </font> 
            </div>
          </td>
        </tr>

        <tr bgcolor="buttonface"> 
          
      <td height="15" colspan="2" bordercolor="buttonface"> 
            <input type="text" name="title" class=textBox>
          </td>
        </tr>
        <tr bgcolor="buttonface"> 
          <td height="50" colspan="2" bordercolor="buttonface"> 
            <div align="center"> 
              <textarea name="mem" class="textBox" rows="5"></textarea>
            </div>
          </td>
        </tr>

    <tr bgcolor="buttonface"> 
          <td height="15" colspan="2" bordercolor="buttonface"> 
            <div align="center"> <font face="&Oacute;×&Ocirc;&sup2;" color="#000000"> &Ntilde;&iexcl;&Ocirc;&ntilde;·&cent;&Euml;&Iacute;&micro;&Auml;±í&micro;&yen;&Atilde;&ucirc;&sup3;&AElig;(ctrl) </font> 
            </div>
          </td>
        </tr> <tr bgcolor="buttonface"> 
          <td height="30" colspan="2" bordercolor="buttonface"> 
            <div align="center"> 
    <select name=seltbl size=3 multiple>
    <%    bmid=session("bmid")
      sqlt="select * from tblmenu where menukey not like '" & left(bmid,3) & "_000' and menukey like '" & left(bmid,3) &"%'"
      set rs0=conn.execute(sqlt)
      do while not rs0.eof 
    %>
    <option value="<%=trim(rs0(1))%>"><%=trim(rs0(1))%>         
    <%
    rs0.movenext
    loop
    rs0.close
    %>
        </select>
            </div>
          </td>
        </tr>
        <tr bgcolor="buttonface"> 
          <td height="15" colspan="2" bordercolor="buttonface"> 
            <div align="center"><font color="#000000">&Atilde;&Uuml;&Acirc;&euml;&pound;&ordm;</font>
    <input type="password" name="pwd" class=textBox1>
            </div>
          </td>
        </tr>
        <tr bgcolor="buttonface"> 
          <td colspan="2" bordercolor="buttonface"> 
            <div align="center"> 
              <input type="submit" name="Submit" value="发送">
              <input type="hidden" name="sendid" value="<%=session("bmid")%>">
              <input type="hidden" name="recid" value="<%=yid%>"> 
              <input type="hidden" name="seloptions">    
              </div>
          </td>
        </tr>
      </table></form>
      

  9.   

    function selstr(){
    selstr=""
    for(var j=0;j<document.sendtbl.seltbl.options.length;j++)
    {
    if(document.sendtbl.seltbl.options[j].selected)
    selstr=selstr+document.sendtbl.seltbl.options[j].value+","
    }
    alert(selstr)document.sendtbl.seloptions.value=selstr
    document.sendtbl.submit()
    }</script>
      

  10.   

    function selstr(){
    selstr=""
    for(var j=0;j<document.sendtbl.seltbl.options.length;j++)
    {
    if(document.sendtbl.seltbl.options[j].selected)
    selstr=selstr+document.sendtbl.seltbl.options[j].value+","
    }
    alert(selstr)document.sendtbl.seloptions.value=selstr
    document.sendtbl.submit()
    }</script>
      

  11.   

    注意:for(var j=0;j<sendtbl.seltbl.length;j++)
    if(document.all.sendtbl.seltbl.options[j].selected)
    两句的写法:for(var j=0;j<document.sendtbl.seltbl.options.length;j++)
    if(document.sendtbl.seltbl.options[j].selected)我的代码都是试验过的,你自己拷贝试验了吗???
    form.asp
      

  12.   

    多谢 net_lover(孟子E章)!!我试过你的code很正确,可现在就是不明白为什么到我的程序中来就不可以了。在我的程序中,想实现,oicq的消息传送方式,由上一个页面传送所选部门的id号,该页面负责处理,键入发送方的消息内容和发送选取的表单 --〉提交到本页处理,最后写入sql数据库。比你给我的例子仅多了两个隐含表单项的传送,以及title/mem的消息内容显示...试了很久,还是不行。。真是急人。 求以赐教!! 谢谢.下面是我这个qq.asp页面的所有代码(以按你的方法改好)可运行后还是无法显示request.form("selstr")内容。<%
    strconn="DSN=byconn;uid=sa;pwd=sa"
    set conn = server.createobject("adodb.connection") 
    conn.open strconn 
    if request("submit")="" then

    yid=request("yid")
    if yid<>"" then 
    yid=left(yid,len(yid)-1)'连续向选定部门发送信息
    else 
    yid=session("yid")
    end if
    session("yid")=yid
    %><html>
    <head>
    <title>QQ写消息</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <link rel="stylesheet" href="sty.css" type="text/css">
    <script language=javascript>
    function test()
    {
    var str=""for(var i=0;i<document.sendtbl.seltbl.options.length;i++)
    {
    if(document.sendtbl.seltbl.options[i].selected==true)
    str = str + document.sendtbl.seltbl.options[i].value + ","
    }alert(str)
    document.sendtbl.submit()
    }
    </script>
    </head><body leftmargin="0" topmargin="0" scroll=no>
    <form action="qq.asp" method="post" name="sendtbl" id="sendtbl">
    <table width="80" border="2" cellspacing="0" cellpadding="0" height="145" >
      <tr> 
          
        <td height="20" width="87%" background="pic/title.gif">
        <b><font size="2" face="幼圆">发送消息</font></b></td>
          <td height="17" width="13%"><img style="CURSOR: hand" src="pic/closeb.gif" width="17" height="17" onClick="window.close()"></td>
        </tr>

    <tr bgcolor="buttonface"> 
          <td height="15" colspan="2" bordercolor="buttonface"> 
            <div align="center"> <font face="幼圆" color="#000000"> 填写发送的信息 </font> 
            </div>
          </td>
        </tr>

        <tr bgcolor="buttonface"> 
          
      <td height="15" colspan="2" bordercolor="buttonface"> 
            <input type="text" name="title" class=textBox>
          </td>
        </tr>
        <tr bgcolor="buttonface"> 
          <td height="50" colspan="2" bordercolor="buttonface"> 
            <div align="center"> 
              <textarea name="mem" class="textBox" rows="5"></textarea>
            </div>
          </td>
        </tr>

    <tr bgcolor="buttonface"> 
          <td height="15" colspan="2" bordercolor="buttonface"> 
            <div align="center"> <font face="幼圆" color="#000000"> 选择发送的表单名称(ctrl) </font> 
            </div>
          </td>
        </tr> <tr bgcolor="buttonface"> 
          <td height="30" colspan="2" bordercolor="buttonface"> 
            <div align="center"> 
    <select name=seltbl size=3 multiple>
    <%       bmid=session("bmid")
      sqlt="select * from tblmenu where menukey not like '" & left(bmid,3) & "_000' and menukey like '" & left(bmid,3) &"%'"
      set rs0=conn.execute(sqlt)
      do while not rs0.eof 
    %>
    <option value="<%=trim(rs0(1))%>"><%=trim(rs0(1))%>         
    <%
    rs0.movenext
    loop
    rs0.close
    %>
        </select>
            </div>
          </td>
        </tr>
        <tr bgcolor="buttonface"> 
          <td height="15" colspan="2" bordercolor="buttonface"> 
            <div align="center"><font color="#000000">密码:</font>
    <input type="password" name="pwd" class=textBox1>
            </div>
          </td>
        </tr>
        <tr bgcolor="buttonface"> 
          <td colspan="2" bordercolor="buttonface"> 
            <div align="center"> 
              <input onclick="test()" type="submit" name="Submit" value="发送">
              <input type="hidden" name="sendid" value="<%=session("bmid")%>">
              <input type="hidden" name="recid" value="<%=yid%>"> 
              </div>
          </td>
        </tr>
      </table></form></body>
    </html>
    <%
    else'验证用户PWD
    pwd=request("pwd")
    user=session("name")
    sqlt0="select * from tbluser where name='" & user & "'"
    set rs02=conn.execute(sqlt0)
    if not rs02.eof then
    if pwd<>trim(rs02(2)) then 
    response.redirect("send-errpwd.htm")
    else
    idls=request("recid")
    sendid=request("sendid")
    title=request("title")
    mem=request("mem")
    mem=replace(mem,chr(10),"<br>")
    wtime=formatdatetime(now,0)
    'response.write (wtime) 
    a=split(idls,",")dim str
    str=request.form("selstr")response.write (str)
    if str<>"" then str=left(str,len(str)-1)
    b=split(str,",")for k=0 to ubound(b)
    response.write (b(k))
    nextfor i=0 to ubound(a)
    for k=0 to ubound(b)
    randomize time
    id=formatdatetime(now,0)
    id=replace(id," ","")
    id=replace(id,"-","")
    id=replace(id,":","")
    id="'" & id & int(rnd()*1000) & "'"sqlt="insert into tblmsg values (" & id & ",'" & sendid & "','" & a(i) & "','" & title & "','" & mem & "','" & b(k) & "','" & wtime & "','0')"
    conn.execute sqlt next
    next
    %>
    <html>
    <head>
    <title>消息发送成功</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <link rel="stylesheet" href="sty.css" type="text/css">
    </head><body leftmargin="0" topmargin="0" scroll=no>
    <table width="157" border="2" cellspacing="0" cellpadding="0" height="258" >
      <tr> 
        <td height="19" width="87%" background="pic/title.gif"><b><font size="2" face="幼圆">发送成功</font></b></td>
        <td height="17" width="13%"><img style="CURSOR: hand" src="pic/closeb.gif" width="17" height="17" onClick="window.close()"></td>
      </tr>
      <tr bordercolor="#000000"> 
        <td height="239" colspan="2"> 
          <div align="center">
            <font face="幼圆" size="2"><b>消息发送成功</b></font><br><br>
            <a href="qq.asp" ><font face="幼圆" size="1"><b>>>继续发送<<</b></font></a></div>
        </td>
      </tr>
    </table>
    </body>
    </html><%
    '结束密码验证if语句
    end if
    end if
    end if%>
    还有想请教response.form()也可以用response.write()来代替吧?
    万分感谢!!
      

  13.   

    看看是不是有变量或名字写错了
    没有response.form()的写法
      

  14.   

    增加hidden不会影响的,注意要写完整的路径,把你错误的地方发出来。客户端
      

  15.   

    检查过了。。真急人。
    如果说在同一个asp页面中存在多个web页面,将变量从哪个web页面传递到其它web页面都应该是没问题的,不知为什么,在这里就行不通。>:(
    。。头大了。。谢了!!
    关于response.form(),在你给我例子中的第5行。
      

  16.   

    request.form("aa")不是response.form()
      

  17.   

    <input onclick="test()" type="submit" name="Submit" value="发送">
    改为
    <input onclick="test()" type="button" name="Submit" value="发送">
      

  18.   

    万分感谢!不好意思,关于response.form()是我敲错了,程序里是没问题的。
    我也是过了,将"submit"改为"button"问题还是解决不了。再次表示感谢
      

  19.   

    我觉代码得都挺正确的,问题还是出在--在同一个asp页面中,分别调用两个web页面,并且子函数值(selstr)在两个页面间被调用时处的问题(selstr无法被调用),现在不知怎样来解决这样的问题。
      

  20.   

    是同一个domain的吗《否则不行的
      

  21.   

    这是什么意思?怎么还和域有关系?不知是否看过上面的代码,我是将两个html页面放到一个asp页面中分别到用的,而子函数的selstr值要在这两个部分中传递调用,因此不能成功,我觉得这是问题的所在。
    多谢!