以下是有效的html:

<form action="a">
    <input.../>
    <form action="b">
        <input.../>
        <input.../>
        <input.../>
    </form>
    <input.../>
</form>

当你提交b时,你只能得到内部表单中的字段。当你提交“a”时,你会得到所有字段减去“b”内的字段。

如果不可能,对于这种情况有什么可行的变通办法?


当前回答

不, 看到w3c

其他回答

HTML 4。x & HTML5不允许嵌套表单,但HTML5允许使用“form”属性(“form owner”)。

至于HTML 4。X你可以:

使用一个只有隐藏字段和JavaScript的额外表单来设置其输入并提交表单。 使用CSS来排列几个HTML表单,使其看起来像一个单一的实体-但这可能很复杂。

不,这是无效的。但是一个“解决方案”可以是在窗体“a”之外创建一个包含窗体“b”的模态窗口。

<div id="myModalFormB" class="modal">
    <form action="b">
        <input.../>
        <input.../>
        <input.../>
        <button type="submit">Save</button>
    </form>
</div>

<form action="a">
    <input.../>
    <a href="#myModalFormB">Open modal b </a>
    <input.../>
</form>

如果你使用bootstrap或materialize css,这很容易做到。 我这样做是为了避免使用iframe。

如果你需要你的表单向1:M关系数据库提交/提交数据,我建议在表a上创建一个“插入后”DB触发器,它将为表B插入必要的数据。

不,HTML规范规定任何FORM元素都不应该包含另一个FORM元素。

正如其他人所说,它不是有效的HTML。

听起来你这样做是为了在视觉上定位彼此之间的形式。如果是这种情况,只需做两个单独的表单,并使用CSS来定位它们。