Ich präsentiere zwar keine Lösung für verschachtelte Formulare (sie funktioniert nicht zuverlässig), aber ich präsentiere eine Umgehung, die bei mir funktioniert:
Verwendungsszenario: Ein Superformular, mit dem N Elemente auf einmal geändert werden können. Es hat eine Schaltfläche "Submit All" am unteren Rand. Jedes Element möchte sein eigenes verschachteltes Formular mit einer Schaltfläche "Element # N einreichen" haben. Kann aber nicht...
In diesem Fall kann man tatsächlich ein einziges Formular verwenden, und die Namen der Schaltflächen lauten submit_1
.. submit_N
y submitAll
und es serverseitig behandeln, indem nur die Parameter betrachtet werden, die auf _1
wenn der Name der Schaltfläche submit_1
.
<form>
<div id="item1">
<input type="text" name="foo_1" value="23">
<input type="submit" name="submit_1" value="Submit Item #1">
</div>
<div id="item2">
<input type="text" name="foo_2" value="33">
<input type="submit" name="submit_2" value="Submit Item #2">
</div>
<input type="submit" name="submitAll" value="Submit All Items">
</form>
Das ist zwar keine besonders gute Erfindung, aber sie erfüllt ihren Zweck.