嵌套表单在HTML5中是否有效?

vol*_*ron 18 forms html5

嵌套表格可以接受吗?

我在HTML5文档中找不到任何关于嵌套表单的内容.我确定它列在某个页面上,某个地方(也许是更改日志),但如果没有,我应该假设没有提及是可接受的吗?

此外,HTML4文档没有提到它. 也许它一直被允许,我坚持旧的标准.

以前的提及

XHTML1.0

表单不得包含其他表单元素.

HTML 3.0

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

lon*_*day 33

HTML5文档确实在上面链接的部分中提到了它:

内容模型

流内容,但没有表单元素后代.

"内容模型"表示"此元素可能包含的内容".所以不,不允许使用嵌套表单.


Jas*_*ske 5

如果他们得到支持,那么类似的方法将起作用:

$('button').on('click', function(e) {
    var form = $(this).parents('form');
    e.preventDefault();
    if(!form) {
        form = $(this);
    }
    $('#output').val('from '+form.attr('id')+'\n'+form.serialize());
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form id='parent'>
    <form id='childA'>
        <input type='text' placeholder='value of A'/>
    <button>Send part A</button>
</form>
    <form id='childB'>
        <input type='text' placeholder='value of B'/>
    <button>Send part B</button>
</form>
    <button>Send All</button>
</form>
<br/>
<textarea id='output'></textarea>
Run Code Online (Sandbox Code Playgroud)

但是,由于它不受官方支持,因此您可以看到浏览器正在阻止它(关闭假定为开放式的form元素)。一种替代方法是使用单个formdata向各个输入添加属性,以便JavaScript可以收集所需的子字段并POST从中手动构建一个子字段。