嵌套表单上的“提交”按钮在IE7中提交外部表单

时间:2011-11-21 17:45:30

标签: javascript asp.net html forms

我的Home.aspx页面上有以下代码:

  <form id="frmJump" method="post" action="Views/ViewsHome.aspx">
    <input name="JumpProject" /><input type="submit" value="Go" />
  </form>

但是,当我点击“开始”按钮时,页面会回到Home.aspx,而不是转到ViewsHome.aspx。

我甚至尝试添加一些脚本来强制表单提交:

<input name="JumpProject" onkeypress="if(event.keyCode == 13) { this.form.submit(); return false; }" />

但即使按ENTER键,也会重新加载Home.aspx页面。

我能看到的唯一可能是borking的东西是这个表单实际上是ASP.NET注入页面的主要POSTBACK表单的子表单。

我确信我有一些愚蠢的错过,这篇文章将获得800个downvotes立即让我回到n00b领域,但也许我最近没有得到足够的睡眠而且我错过了一些愚蠢的东西。

这是在IE7和ASP.NET 4.0后端。我也在页面上加载了jQuery库,jQuery可以以某种方式改进它。谢谢!

3 个答案:

答案 0 :(得分:4)

最简单的解释是表格不能嵌套。

您可以考虑修改提交逻辑以适当地处理场景服务器端(通过单个回发表单。)否则,您可能必须考虑偏离标准ASP.NET Webforms回发模型的路由。

答案 1 :(得分:2)

您无法在HTML中嵌套表单,因此浏览器将忽略内部表单标记。提交表单时,它将提交页面上唯一的表单。

如果您需要将表单发布到其他页面,可以使用Javascript在发送之前更改当前表单(单击按钮),或者创建新表单元素,将其添加到页面并提交代替。

答案 2 :(得分:1)

您不能在HTML中嵌套表单。大多数浏览器都不支持它。

你可以做的是,因为你正在经历.net webforms,只是在C#中有一个与你点击的提交按钮相对应的Button_Click事件,让它从那里跳过项目。< / p>