2017-12-31 201 views
0
<tr> 
    <form role="form" class="manualImportSubmit" action="http://localhost:5000/XXX" method="post"> 
    <td><input name="yyy" value="FormAValue" type="hidden">TestA</td> 
    <td><input name="before_year" class="form-control" placeholder="Before year"/></td> 
    <td><button type="submit" class="btn btn-primary btn-mid">Submit</button></td> 
    </form> 
</tr> 
<tr> 
    <form role="form" class="manualImportSubmit" action="http://localhost:5000/XXX" method="post"> 
    <td><input name="yyy" value="FormbValue" type="hidden">TestB</td> 
    <td><input name="before_year" class="form-control" placeholder="Before year"/></td> 
    <td><button type="submit" class="btn btn-primary btn-mid">Submit</button></td> 
    </form> 
</tr> 

Javascript:Wie behandeln einreichen für alle dynamisch erstellte Formulare

<script type="text/javascript"> 
var frm = $('.manualImportSubmit'); 
frm.submit(function (e) { 
    e.preventDefault(); 
    console.log(frm.serialize()); 
    // $.ajax({ 
    //  type: frm.attr('method'), 
    //  url: frm.attr('action'), 
    //  data: frm.serialize(), 
    //  success: function (data) { 
    //   console.log('Submission was successful.'); 
    //  }, 
    //  error: function (data) { 
    //   console.log('An error occurred.'); 
    //  } 
    // }); 
}); 
</script> 

So werde ich in einer Tabelle dynamisch Erstellen von Formularen werden (jede Zeile ist eine eigene Form). Das Problem, das ich habe, erstellt eine Funktion in Javascript, um alle diese zu behandeln. Oben ist mein Versuch, jedoch verknüpft dies alle Übermittlungsschaltflächen mit der endgültigen Form in den Daten der Tabelle. Ich weiß, dass ich für jede Zeile dynamisch einen JavaScript-Handler erstellen könnte, aber das möchte ich wirklich nicht. Gibt es überhaupt etwas zu tun, was ich ohne dynamisches Erstellen von Javascript mit jeder Zeile tun möchte?

Um diesen hinzufügen, legt die für alle gleich ist (die genaue Javascript I posted)

+1

Für den Anfang ''

kann kein direktes Kind von '' oder Eltern von '' – charlietfl

Antwort

0

Sie müssen die jedes Schlüsselwort. Versuche dies? Es hat zwei Beiträge für mich in einer Geige gemacht.

frm.each(function() { 

    this.submit(function (e) { 
     e.preventDefault(); 
     console.log(frm.serialize()); 
    }); 

}); 
+0

Sorry, falsch verstanden mich sein, ich will nur die angeklickt Formular abgeschickt und Daten geschrieben werden. Das Problem war jedoch, dass immer das letzte Formular eingereicht wurde, unabhängig davon, auf welches geklickt wurde. – asdasd2a43qaad

+0

Das angeklickte Formular wird automatisch ohne Skript gesendet, wenn Sie auf die Senden-Schaltfläche klicken. Also, in welchem ​​Kontext wird das Javascript benötigt? – Ctznkane525

+0

Ich möchte verhindern, neu zu laden und zu rationalisieren, was gepostet wird, ich dachte nur, es wäre einfacher mit js – asdasd2a43qaad

Verwandte Themen