html - 一页上有多个表单的问题

标签 html forms

我的网页上有两个表单。

第一个不是实际的表单,因为这是一个基于 .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/

相关文章:

css - 二次响应式 html div 保持纵横比

html - "aria-labelledby"属性的功能

html - 如何将这种 Font Awesome (v5.0) 颜色从白色转换为我的自定义颜色?

javascript - 如何使用 jquery 或 java 脚本验证下拉框

html - NavBar 图像链接不工作,但代码是完美的。这是怎么回事?

jquery - 如何仅更改具有其他 div 的 div 内的文本

html - 如何设置密码的最小长度

PHP OOP 设计模式 : Should I Create two separate classes for registration and form validation?

php - FILTER_VALIDATE_EMAIL

javascript - Antd 的 @Form.create<Props>() 装饰器导致不明确的 TypeScript 错误