2011-12-16 53 views
1

案例:如何在同一頁上提交兩個表單?

我有兩種形式
1>自定義窗體說form1。
2>從第三方Java腳本調用表單呈現形式呈現form2。

以前只有一種形式
(沒有第三方形式)具有相同的字段。
因此,我使用單一提交按鈕提交它。
可以說我正在爲我的舊窗體調用Action1。

第三方形式有自己的提交按鈕,並將其提交值(不是所有的,只有第三方
值),以自己的控制器,並返回響應。

我不想讓用戶在同一頁面上提交兩次。

我想在舊的提交按鈕上提交這兩個表單並隱藏第三方提交按鈕。

我可以更改響應URL(在哪裏登陸以獲得第三方表單提交響應)。

我想隱藏第三方提交按鈕與CSS和調用點擊/提交,當我點擊舊的提交按鈕使用JavaScript。

允許將第三方的響應登錄頁面設置爲Action1。

但是,如果我降落在舊行動即Action1我無法獲得舊的自定義表單元素?

我被困在這種情況下。

你能有更好的解決方案嗎?

[使用struts框架和JSP呈現形式。]

+0

你將不能夠在每一次提交兩種形式通常的方式與按鈕。你可以通過javascript提交一個表單,一旦響應返回,然後提交第二個表單(通過javascript,或者通常的action =「whatever」方法) – Prescott 2011-12-16 09:29:25

回答

0

最好的辦法是使用JavaScript來一個表單參數複製到其他。

可以使用相同的機制來刪除其他表單的提交按鈕。

1

使用jQuery,你可以嘗試這個,

$("#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(); 
} 

第二個選項

$("#form1").submit(function(){ 
    $.post($(this).attr("action"), $(this).serialize(), 
     function(){ 
      $.post($("#form2").attr("action"), $("#form2").seriallize(), 
       function(){ 
        alert("Now what?"); 
       }); 
     }); 
}); 

希望這也是有幫助的,Submit multiple forms with jQuery and Ajax.

相關問題