2012-11-19 3 views
5

Ich habe mehrere Möglichkeiten versucht, dies zu tun, indem ich stackoverflow für die Antwort suche.reichen Sie zwei Formulare mit einem Submit-Button ein jQuery

Ich habe zwei Formen

Form 1 Grundeinstellung:

<form action="/post" class="frm-form" method="post" name="post" 
onsubmit="return vB_Editior['text_editor'].prepare_submit(0,0)" id="quick_reply"> 
    <textarea></textarea> 
     <input type="submit" name="post" value="Send"> 
</form> 

Form 2 Grundeinstellung:

<form enctype="multipart/form-data" id="tagnotif" style="display:none;" 
onsubmit="return vB_Editor['text_editor'].prepare_submit(0,0)" name="post2" 
method="post" action="/privmsg"> 
    <input id="username" class="post" type="text" tabindex="1" size="25" 
     name="username[]"style="margin:1px 0"><br /> 
    <input id="acpro_inp10" class="post" type="text" 
    onkeypress="if (event.keyCode==13){return false}" title="" tabindex="2" 
    maxlength="64" size="45" value="You have been tagged" name="subject"><br /> 
    <textarea id="textingnotification" rows="15" cols="9" 
    name="message" tabindex="3"></textarea> 
    <input type="hidden" value="" name="lt"> 
    <input type="hidden" value="inbox" name="folder"> 
     <input type="hidden" value="post" name="mode"> 
</form> 

Ich brauche nur diese beiden Formen auf SEND drücken der ersten vorgelegt werden form

AUSGEWÄHLT MIT DIESEM CODE VARIABLEN MIT DEM HAUPTBESCHREIBUNG: Obwohl es nicht p ass beide, und es wird die Seite nicht aktualisieren ...

$(document).ready(function() { 
    $('#quick_reply').ajaxForm(function() { 
      alert("Thank you for your submitting form 1"); 
    }); 
    $('#tagnotif').ajaxForm(function() { 
      alert("Thank you for your submitting form 2"); 
    }); 

}); 

function mySubmitFunction() { 
    $("#quick_reply").submit(); 
    $("#tagnotif").submit(); 
} 
+0

Warum können Sie nicht sie zu machen bilden? – Andrew

+0

Machen sie dann nur eine Form? – wakooka

+0

Müssen zwei getrennte Formulare sein, da man an/privmsg sendet und der andere sendet/post – EasyBB

Antwort

4

Das glaube ich nicht, dass Sie zwei reguläre Post-Anfragen von einer einzigen HTML-Seite tun können, da macht die Post beinhaltet die Seite zu verlassen und nach dem Weiterleitungsantwort

Wenn Sie die Formulare über ajax senden, warum nicht einfach eine einzige Ajax-Taste und greifen Sie auf die erforderlichen Parameter, um in der Anfrage zu bleiben? IE:

$.ajax({ 
    type: 'POST', 
    dataType: 'JSON', 
    data: {param1: $('input#param1').val(), param2: $('input#param2').val()}, 
    url: 'url to post to', 
    success: (your success callback function goes here) 
}) 
+0

Ein Formular ist ein Formular kommentieren. Andere Form ist zum Senden von PM. Grundsätzlich ist mein Hack hier so, wenn ein Benutzer einen anderen Benutzer markiert, sendet er dem markierten Benutzer eine PM, die angibt, wo das Tag war und dass sie getaggt wurden. Deshalb muss ich sie beide schicken. Wie würde ich darüber gehen? Kein PHP, da ich keinen Zugriff auf die Hosting-Site habe. – EasyBB

+0

Auch eine AJAX-Schaltfläche zu erstellen wäre schwierig, die erste Form wird von einer PHP-Variablen {quick_reply} generiert, also ja, ich habe eigentlich nicht nur auf das zweite Bit Zugriff auf dieses Bit. Der zweite Code ist versteckt Dies ist im Grunde ein Hack für die Website-Hosting-Site – EasyBB

+0

Sind Sie in der Lage, das Markup auf der Seite überhaupt zu ändern, oder sind Sie vollständig mit dem, was Sie haben stecken? – Andrew

1

Dadurch müssen Sie zuerst jeder einreichen Tasten von diesen beiden Formen entfernen Wenn Form Submit-Button haben das wird nicht funktionieren.

erste Form

<form action="/post" id="frm-form" class="frm-form" method="post" name="post" 
onsubmit="return vB_Editior['text_editor'].prepare_submit(0,0)" id="quick_reply"> 
    <textarea></textarea> 
     <input id="frm-submit" type="button" name="post" value="Send"> 
</form> 

zweite Form

<form enctype="multipart/form-data" id="tagnotif" style="display:none;" 
onsubmit="return vB_Editor['text_editor'].prepare_submit(0,0)" name="post2" 
method="post" action="/privmsg"> 
    <input id="username" class="post" type="text" tabindex="1" size="25" 
     name="username[]"style="margin:1px 0"><br /> 
    <input id="acpro_inp10" class="post" type="text" 
    onkeypress="if (event.keyCode==13){return false}" title="" tabindex="2" 
    maxlength="64" size="45" value="You have been tagged" name="subject"><br /> 
    <textarea id="textingnotification" rows="15" cols="9" 
    name="message" tabindex="3"></textarea> 
    <input type="hidden" value="" name="lt"> 
    <input type="hidden" value="inbox" name="folder"> 
     <input type="hidden" value="post" name="mode"> 
</form> 

JQuery

$("#frm-submit").change(function(){ 
    $("#frm-form").submit(); 
    $("#tagnotif").submit(); 
}); 

Dies ist die Seite neu geladen und legt zwei Formen

+0

Nun, da ich jQuery nicht nutze, ist das nutzlos;) auch wir haben Versprechungen, wo sie das machen könnten einfacher und belastbarer gegenüber gestaffelten Buchungen. – EasyBB

Verwandte Themen