Es ist möglich um das gleiche Ergebnis wie bei verschachtelten Formularen zu erzielen, ohne sie jedoch zu verschachteln.
Mit HTML5 wurde das Formularattribut eingeführt. Sie können das form-Attribut zu Formularsteuerelementen außerhalb eines Formulars hinzufügen, um sie mit einem bestimmten Formularelement (nach id) zu verknüpfen.
https://www.impressivewebs.com/html5-form-attribute/
Auf diese Weise können Sie Ihre html-Datei wie folgt strukturieren:
<form id="main-form" action="/main-action" method="post"></form>
<form id="sub-form" action="/sub-action" method="post"></form>
<div class="main-component">
<input type="text" name="main-property1" form="main-form" />
<input type="text" name="main-property2" form="main-form" />
<div class="sub-component">
<input type="text" name="sub-property1" form="sub-form" />
<input type="text" name="sub-property2" form="sub-form" />
<input type="submit" name="sub-save" value="Save" form="sub-form" />
</div>
<input type="submit" name="main-save" value="Save" form="main-form" />
</div>
Das Formularattribut wird von allen modernen Browsern unterstützt. Der IE unterstützt es zwar nicht, aber der IE ist kein Browser mehr, sondern ein Kompatibilitätstool, wie von Microsoft selbst bestätigt wurde: https://www.zdnet.com/article/microsoft-security-chief-ie-is-not-a-browser-so-stop-using-it-as-your-default/ . Es ist an der Zeit, dass wir aufhören, uns darum zu kümmern, dass die Dinge im IE funktionieren.
https://caniuse.com/#feat=form-attribute
https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fae-form
Aus der html-Spezifikation:
Diese Funktion ermöglicht es den Autoren, die fehlende Unterstützung für verschachtelte Formularelemente zu umgehen.