2016-03-05 114 views
-1

我有两种形式。每个表单都链接到其各自的ActionMethod。首先成功发布相应ActionMethod的帖子,但不发布到其各自的ActionMethod,而是发布到第一个表单ActionMethod。生成的HTML是:HttpPost方法不张贴

<div id="tabs-ViewBranch"> 
<h2>Districts</h2>  
<p> 
    <a href="/cityDistrict/createDistrict">Create New</a> 
</p> 
<form action="/cityDistrict/deletedDistricts" method="post"><p> 
    <select id="Status" name="Status" onchange=" 
      var form1 = document.forms[0];    
      form1.submit();"><option value="0">Show Active</option> 
<option value="1">Show Deleted</option> 
</select> 
</p> 
</form><table class="table"> 
    <tr> 
     <th> 
      name 
     </th> 
     <th>Actions</th> 
    </tr> 

    <tr> 
     <td> 
      Gujranwala 
     </td> 
     <td> 
      <a href="/cityDistrict/editDistrict/4">Edit</a> | 
      <a href="/cityDistrict/deleteDistrict/4">Delete</a> 
     </td> 
    </tr> 
</table>  
    </div> 
    <div id="tabs-AddBranch"> 
<h2>Cities</h2>  
<p> 
    <a href="/cityDistrict/createCity">Create New</a> 
</p> 
<form action="/cityDistrict/deletedCities" method="post"> <p> 
     <select id="Status" name="Status" onchange=" 
      var form = document.forms[0]; 
      form.submit();"><option value="0">Show Active</option> 
<option value="1">Show Deleted</option> 
</select> 
    </p> 
</form> <table> 
     <tr> 
      <td> 
       No cities exists. 
      </td> 
     </tr> 
    </table>  
    </div> 
</div> 

一切运行除了第二种形式是不是张贴到deletedCities,并且相当张贴到deletedDistricts罚款。有人能指导我哪里出错吗?

回答

2

你的问题是在这里

var form = document.forms[0]; 

无论是JavaScript事件导致要提交的文件中第一种形式,因为他们都表示forms[0]。我只是这样做:

onchange="this.form.submit();" 

this指的是当前元素,并且每个表单元素具有form属性,发现它属于形式,而不必指定全局索引。

甚至更​​好的是,在HTML之外定义事件处理程序(提示:jQuery很受欢迎)

+0

真棒解释。谢了哥们。它的工作就像一个魅力。 – Jogi