我的网页上有两个表单。
第一个不是实际的表单,因为这是一个基于 .NET 的站点。因此,我有标准输入字段以及 asp:Button PostBackURL="http:/www..."。其中一个字段是“电子邮件”。效果很好。
然后我有一个包含另一种表单的 XSLT 文件,并使用 Javascript(通过 this.form.action、.method 等)来发布该表单。除此之外,它具有与上面的表单相同的字段。
问题是,当有人提交第二个表单时,PostBackURL 处的脚本会返回错误,因为“电子邮件”字段显示为空。因此,该表单似乎正在从顶部表单而不是当前表单提交“电子邮件”字段。
我认为可能提交了错误的表单,但如果我从顶部表单中删除“电子邮件”字段,然后提交底部表单,则效果很好。
关于如何解决这个问题有什么想法吗?谢谢。
最佳答案
我会通过查看源代码来检查 HTML,但可能的罪魁祸首是 HTML 中不能有嵌套表单。如果您在 HTML 中嵌套表单,则内部表单将被忽略并提交外部表单。
<form id="outer" onsubmit="alert('outer');return false;">
<form id="inner" onsubmit="alert('inner');return false;">
<input type="submit" value="Go" />
</form>
</form>
您可以在此处演示此行为:http://jsfiddle.net/eRZQD/ .
鉴于此,您可能正在尝试提交内部表单,但实际上正在提交外部表单,其中包含一个空白电子邮件字段,这会导致您的错误。您肯定会想要删除嵌套或重新编写 HTML,以便内部提交按钮的功能与外部提交按钮的功能略有不同。
关于html - 一页上有多个表单的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2547611/