2016-04-25 4 views
0

Ich habe Datenzeilen, wobei jede Spalte eine <td> ist, die eine <input> enthält. Die Herausforderung besteht darin, wenn der Benutzer die Übermittlungsschaltfläche drückt, möchte ich 2 Formulare mit unterschiedlichen Eingaben übermittelt werden. Wie kann ich in der Eingabe angeben, in welche Form diese Eingabe gehen soll?So geben Sie an, welcher Eingang in welches Formular übernommen wird

Der Grund dafür ist funky ist, weil normalerweise Sie diese müss:

<form> 
    <table> 
    <tr> 
     <td><input /></td> 
    </tr> 
    </table> 
</form> 

So ist die Eingabe in welcher Form auch immer geht es innerhalb verschachtelt ist. Aber in meinem Fall, da es unmöglich ist, diese Art zu tun, necken, weil ich brauche:

<form1> 
<form2> 
    <table> 
    <tr> 
     <td><input1 /></td> 
     <td><input2 /></td> 
     <td><input2 /></td> 
     <td><input1 /></td> 
     <td><input1 /></td> 
    </tr> 
    </table> 
</form1> 
</form2> 

Wenn es keine Möglichkeit gibt, die über Arbeit zu machen, außer etwas wie die unten zu tun:

<table> 
    <tr> 
     <form1> 
     <td><input1 /></td> 
     <td><input1 /></td> 
     <td><input1 /></td> 
     </form1> 
     <form2> 
     <td><input2 /></td> 
     <td><input2 /></td> 
     </form2> 
    </tr> 
    </table> 

Das ist auch eine akzeptable Antwort. Ich würde es einfach vorziehen, das Obengenannte zu vermeiden, weil es aus UX-Perspektive ironisch ist, dass es am intuitivsten ist, die Eingaben über die Formulare hinweg zu mischen.

Antwort

0

Sie können dies nicht erreichen, ohne Ihre Eingaben in 2 verschiedenen form s Aufspaltung, wie Sie bereits erwähnt oder ohne javascript zu verwenden. Nun, die dritte Option wäre, Formulare am Backend durch ihre Namen zu trennen (form[1][name], form[2][name], etc.)

+1

+1 Formularelemente können nicht verschachtelt werden: https://www.w3.org/TR/html5/forms.html# das-Form-Element. –

0

Übermitteln Sie die zwei Gruppen von Eingängen, die Sie wollen, über JavaScript. Wenn Sie jQuery verwenden:

var group1 = $('#myform :input').not('.group2').serializeArray(); 
var group2 = $('#myform :input').not('.group1').serializeArray(); 

// post each group wherever you want 
$.post("/page1", group1); 
$.post("/page2", group2); 

https://api.jquery.com/serialize/

https://api.jquery.com/serializeArray/

Verwandte Themen