在HTML中,表单元素不能直接嵌套在其他表单元素中。要克服这个限制,可以使用以下方法:
在外层表单中添加事件处理程序,例如submit
事件,并在其中触发内层表单的提交事件。这样,当外层表单被提交时,内层表单也会被提交。
<form id="outer-form">
<input type="text" name="outer-input" />
<form id="inner-form">
<input type="text" name="inner-input" />
</form>
<button type="submit">提交</button>
</form><script>
const outerForm = document.getElementById("outer-form");
const innerForm = document.getElementById("inner-form");
outerForm.addEventListener("submit", (event) => {
event.preventDefault();
innerForm.dispatchEvent(new Event("submit"));
});
</script>
在HTML中创建一个隐藏的iframe,并将内层表单的内容放入iframe中。当外层表单被提交时,将内层表单的数据与外层表单的数据一起提交。
<form id="outer-form" target="hidden-iframe">
<input type="text" name="outer-input" />
<iframe id="hidden-iframe" name="hidden-iframe" style="display:none;"></iframe>
<form id="inner-form" target="hidden-iframe">
<input type="text" name="inner-input" />
</form>
<button type="submit">提交</button>
</form>
这两种方法都可以克服HTML表单嵌套的限制,并使内层表单的数据与外层表单的数据一起提交。