2008-11-24 18 views
5

Ich habe zwei Formulare auf einer Seite (eine wird von AJAX gegriffen). Ich brauche beide, um gepostet zu werden, also serialisiere ich das zweite und sende es in einem Post mit jQuery, bevor ich das erste abschicke. Allerdings scheint nur das erste Formular gepostet zu werden. Das Seltsame ist jedoch, wenn ich nach dem serialisierten Post eine Warnung mache, funktioniert es wie erwartet. Was genau ist mein Problem hier?Senden/Senden mehrerer Formulare in jQuery

$("#submit").livequery('click', function() { 
    var form = $("#second_form"); 
    var action = form.attr("action"); 
    var serialized_form = form.serialize(); 
    $.post(action, serialized_form); 

    //alert('test'); 

    $("#first_form").submit(); 

    return false; 
}); 

Gibt es eine bessere Möglichkeit, zwei Formulare zu posten und dann auf eine neue Seite umzuschalten? Ich habe versucht, beide mit der obigen Methode zu veröffentlichen und dann window.location zu verwenden, um Seiten zu wechseln, aber ich hatte ein ähnliches Problem.

Vielen Dank!

Antwort

5

Sie könnten versuchen, "first_form" in einem Rückruf vom Post von "second_form" einzureichen. Ich glaube, dass das Einreichen von "first_form" die Seite entlädt, wodurch der zweite Post abgebrochen wird. Durch das Ausführen des Posts "first_form" im Callback von "second_form" wird sichergestellt, dass der erste Post abgeschlossen ist, bevor der zweite Post beginnt.

$("#submit").livequery('click', function() { 
    var form = $("#second_form"); 
    var action = form.attr("action"); 
    var serialized_form = form.serialize(); 
    $.post(action, serialized_form, submit_first); 
}); 

function submit_first(val) { 
    $("#first_form").submit(); 
} 
+0

Perfekt! Vielen Dank - Ich habe nicht bemerkt, dass das Einreichen der Seite entladen wurde. : D – Wickethewok

Verwandte Themen