使用嵌套的HTML表单,是否可以在提交时定位传输哪个内容?

时间:2009-10-14 16:41:46

标签: html forms

我有另一种形式的表格:

<form id="a">
    <form id="b">
        <input type="submit">

单击提交按钮时,似乎提交了外部表单。

有没有办法确定提交哪种表单?

5 个答案:

答案 0 :(得分:5)

不,不支持嵌套表单:

  

单个文档中可以有多个表单,但FORM元素不能嵌套。

- http://www.w3.org/MarkUp/html3/forms.html

答案 1 :(得分:4)

HTML DTD专门禁止表单元素包含另一个表单元素:

<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->

http://www.w3.org/TR/html401/interact/forms.html#edef-FORM

答案 2 :(得分:3)

像其他人所说的那样......不允许使用嵌套表格。

然而,这并不意味着某些浏览器不会对此做些什么。在您提供的示例中,浏览器似乎忽略了第二个<form>标记,其方式与未知标记(即<notAValidTag>)的忽略方式类似。由于JavaScript也不允许嵌入式表单集合,因此确保提交FormB信息的最佳方法是使其不再是嵌套表单。这会将您的标记和UI分解为更加截然不同的部分,从UX的角度来看也可能是有益的。

答案 3 :(得分:1)

我认为html标准不允许这样做。

答案 4 :(得分:0)

在HTML 5中,按照目前的草案,是的。每个输入元素可以具有它所属的形式的“形式”属性信令。但是,在HTML中嵌套表单仍然无效,HTML解析器不允许这种情况发生。

但是,可以通过JavaScript构建嵌套表单。在没有表单属性的情况下,用于确定输入所属表单的规则非常复杂,但在http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#association-of-controls-and-forms

中完整地描述了它们。