在同一个页面里连续放了几个内容基本一致的form<form name="actionForm action="/home/servlets/assetServlet" method="post" target="te11">
<input type="hidden" name="saction" value="action_asset" />
<input type="hidden" name="tsn" value="<%=sn%>" />
<input type="hidden" name="user" value="<%=tto%>" />
<input type="hidden" name="ttype" value="<%=ttype%>" />
<input type="hidden" name="tstatus" value="<%=tstatus%>" />
<select name="test">
<option value="2">Reject</option>
<option value="3" selected="selected">Need Approval</option>
<option value="4">Approve</option>
</select>
<input id="<%=sn%>" type="submit" value="Submit" />
</from>很奇怪的是我点击submit提交任何不是排在最前边的表单但却都会是排在最前边的表单被提交出去,有人知道这是怎么回事么?

解决方案 »

  1.   

    这个问题一点都不奇怪,你在一个页面里的FORM的name都是一样的话,就只有一个FORM对象其他你在写多少个都不会有用,只有第一个是有效的,程序加载时候是顺序加载的遇到相同名称的对象由于已存在则都认为是第一个FORM.因此你点击任何一个SUBMIT按钮其实都是提交的第一个FORM。
      

  2.   

    这就是看你的form表单在那个table里面,这个提交按钮要和这个form表单放在一个table里才可以。
      

  3.   

    抱歉没写清,但name不一样也没用,我原来是用的:
     <form name="actionForm<%=i+1%>" id="actionForm<%=i+1%>" action="/home/servlets/assetServlet" method="post" target="te11"> 
    这些form是根据循环来生成出来的,里边的表单项都是一样的
    <input type="hidden" name="saction" value="action_asset" /> 
    <input type="hidden" name="tsn" value=" <%=sn%> " /> 
    <input type="hidden" name="user" value=" <%=tto%> " /> 
    <input type="hidden" name="ttype" value=" <%=ttype%> " /> 
    <input type="hidden" name="tstatus" value=" <%=tstatus%> " /> 
    <select name="test"> 
    <option value="2"> Reject </option> 
    <option value="3" selected="selected"> Need Approval </option> 
    <option value="4"> Approve </option> 以前倒也没这么用过,form名不一样但提交的却是同一个form,让我很奇怪...
      

  4.   

    和form名称没有关系
    <INPUT TYPE="submit">如果在某个<form>内,则提交这个form
    如果要显式指定提交某个form:document.forms[名称或序号].submit();
      

  5.   

    回3楼,看来还是跟table有关,我用的div貌似就有问题...
      

  6.   

    恩,可以每个form外面加个div
    提交就没得问题。
      

  7.   

    提交按钮一定要放在你要提交的那个form里面