Rolf B: Formularfelder auf anderes Formular übertragen

Beitrag lesen

problematische Seite

Hallo pl,

so viele Schleifen sind es gar nicht - ich habe es jetzt mal gefiddelt und der Code ist im Prinzip identisch, egal wo die Namen her kommen.

Allerdings: Wenn FormData die Quelle ist, brauche ich Reset-Code, um die Eingabefelder mit den Namen, die im FormData mangels Inhalt nicht drinstehen (Checkbox, Radio, Multiselect), vorab zu leeren.

Darum ist's mit dem Form als Namensgeber besser. Die Schleifentiefe ist in meiner Version trotzdem 2 bis 4 (bei Multiselect und Checkbox/Radio ist die tiefste Schleife der include-Aufruf). Das liegt aber daran, dass ich versucht habe, die Programmstruktur auf die logische Datenstruktur zu matchen, nicht auf die phyische Datenstruktur. Der gute alte Michael A. Jackson[1] hat mir das so beigebracht.

Bei Dir ist sie 1 bis 3, dafür musst Du im FormData herummanipulieren und jede Menge Arraywerte shiften. Die Anzahl der durchlaufenen Schleifenkerne sollte bei Dir und mir aber gleich sein, weil wir ja gleich viele Elemente verarbeiten :). Deine innerste for-Schleife bei select und checkbox könntest Du übrigens ebenfalls durch vals.includes(...) ersetzen, und type="select" kannst Du analog zu text/textarea behandeln, da kann man einfach den value zuweisen.

Fiddle: https://jsfiddle.net/Rolf_b/cgn3vwey/

Rolf

--
sumpsi - posui - clusi

  1. nicht zu verwechseln mit Michael "Pädo" J. Jackson! ↩︎