• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Per jQuery erzeugte Inputfelder wegschicken...

Timmer

Mitglied
Moin,

ich hänge gerade bei einem kleinen Problem. Ich erzeuge per Klick neue Inputfelder, wenn ich diese anschließend über ein stinknormales <form method="post"> wegschicken will, werden bloß die Inputfelder übergeben, welche von Anfang an schon da waren. Ich könnte zwar ein leeres Hidden-Field und jQuery's serialize nutzen, jedoch ist der Feldwert etwas groß bei ein paar hundert Inputfeldern ;)

Jemand eine Idee?

Timmer
 
Ohne Quellcode - schwer zu sagen.

Ich rate mal ins blaue und sage, dass die neuen Formularfelder entweder nicht innerhalb des <form>-Elements stehen oder die neuen Felder keinen Namen erhalten haben.
 
Da liegst du falsch. Hier ein Beispielquellcode, der die Situation beschreibt:
Code:
$(document).ready(function(){
   var count = 4;
   $("#ib_anchor").click(function(){
       $(this).before('<input name="Feld' + count + '" value="" /><br />');
       count++;
   });
});

<form method="post">
    <input name="Feld1" value="" /><br />
    <input name="Feld2" value="" /><br />
    <input name="Feld3" value="" /><br />
    <input type="button" id="ib_anchor" value="Feld hinzufügen" />
</form>
Live-Preview: http://jsbin.com/ociqoq

Die 3 Felder, die schon existieren, also serverseitig generiert werden, schickt das Form mit. Alle anderen, später per jQuery (oder normalem JS) generierten Felder nicht. Ich bräuchte jetzt eine Funktion, die das Submit abfängt und die neuen Felder in die POST-Daten des Formulars "injiziert". Auf einen AJAX-Submit würde ich gerne verzichten...

[EDIT]

Um noch hinzuzufügen: Ein Serialize über das Form beinhaltet alle Felder, somit stehen die Felder innerhalb des <form>-Tags und haben einen Namen ;)

[EDIT]

Ich machs jetzt so, dass man maximal 10 neue Felder anlegen kann, welche schon serverseitig generiert und mit einem style="display:none;" ausgegeben werden. Nachdem man 10 neue Felder angelegt hat, kommt eine Meldung, welche zum Speichern auffordert. Durch das Speichern wird die Seite neu geladen und es werden wieder 10 versteckte Felder angehängt. Diese Lösung scheint mir am sinnvollsten, da man somit auch verhindert, dass hunderte Felder angelegt und gefüllt werden und durch einen Fehler (z.B. Browser stürzt ab) alle Daten wieder verloren gehen.

Timmer
 
Zuletzt bearbeitet:
An deinem Codebeispiel sehe ich nicht wie Du das Formular abschickst?! Submit-Button? An eine URL im (noch fehlenden) action-Attribut?
 
Zurück
Oben