2011-12-16 96 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.

相关问题