2011-11-03 46 views
5

Tôi có một trang chứa nhiều biểu mẫu. Tôi muốn thêm một nút gửi đơn sẽ cho phép tất cả các biểu mẫu được lưu cùng một lúc, như được minh họa bên dưới:gửi nhiều biểu mẫu với AJAX

<form id="form1" name="form1" action="someAction" method="post"> 
    ....form fields 
</form> 

<form id="form2" name="form2" action="someOtherAction" method="post"> 
    ....form fields 
</form> 

<form id="form2" name="form2" action="anotherAction" method="post"> 
    ....form fields 
</form> 

<a href="somewhere.html" onclick="submitAll();">Submit All Forms</a> 

<script> 
    function submitAll() { 
     document.form1.submit(); 
     document.form2.submit(); 
     document.form3.submit(); 
    } 
</script> 

Vấn đề tôi gặp phải là khi biểu mẫu đầu tiên được gửi, đó là chuyển hướng trang đến đích của biểu mẫu đó - tôi muốn chặn chuyển hướng đó để tôi có thể xử lý biểu mẫu tiếp theo.

Tôi biết rằng điều này có thể được thực hiện thông qua AJAX, bằng cách nào đó sẽ cho phép tôi nắm bắt trang được trả lại (và bỏ qua nó nếu tôi chọn), nhưng tôi không thể tìm ra cách thực hiện điều này mà không cần ánh xạ từng các trường trong biểu mẫu theo cách thủ công.

Có ai giúp được không?

Trả lời

8

này phải nộp mỗi hình thức thông qua ajax mà không cần phải lập bản đồ các lĩnh vực tự hỏi:

$('form').each(function() { 
    var that = $(this); 
    $.post(that.attr('action'), that.serialize()); 
}); 
+0

Cảm ơn, chính xác những gì tôi cần! – Elie

Các vấn đề liên quan