我有两种形式。每个表单都链接到其各自的ActionMethod。第一个表单成功发布到其各自的ActionMethod但第二个表单而不是发布到其各自的ActionMethod,而是发布到First表单ActionMethod。生成的HTML是:
<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
。有人可以指导我哪里出错了吗?
答案 0 :(得分:2)
你的问题在这里
var form = document.forms[0];
两个JavaScript事件都会导致提交文档中的第一个表单,因为它们都说forms[0]
。我只是这样做:
onchange="this.form.submit();"
this
引用当前元素,每个表单元素都有一个form
属性,可以找到它所属的表单,而无需指定全局索引。
甚至更好,在HTML之外定义事件处理程序(提示:jQuery很受欢迎)