2014-06-13 143 views
0

我有以下两种形式运行提交()两次提交到不同形式的一次

<form id="form1" method="post" action=""> 
    <input type="text" name="field1"> 
</form> 

<form id="form2" method="post" action=""> 
    <input type="text" name="field2"> 
    <input type="submit" id="save" name="submit" value="Save"> 
</form> 

这两种形式是在一个页面上非常oposite和不相干的地方。我希望能够在保存命中的同时提交它们。我也知道save只是用于第二种形式,但它是这种方式,因为我被指示在用field2创建表单之后添加上面的表单。我会纠正它。

我的JS是以下

$('#save').on('click', function(event){ 
    form1 = $("#form1"); 
    form2 = $(#"form2"); 
    event.preventDefault() //Some other checks happen before submission that's why I am preventing it 
    //Checks 

    form2.submit(); 
    form1.submit(); 
}); 

但在我的后台只有FIELD1是在request.POST(Django的)词典。我相信因为我提交了第二个。当我只需要提交一个(表格2)一切正常。但我不能这样做。我怎样才能同时提交两种不同的表格?

+1

你不能这样做,因为在form2.submit();控制将被转移,你失去了第二个。最好的选择是首先获取字段值,然后将它们一起发布。 –

+0

如何将它们发布到一起?不使用form1或form2提交功能?不使用ajax – Apostolos

+1

今天,您将了解到一个名为Ajax的东西,因为除了将它们提交给隐藏的iframe之外,这是唯一的解决方案。除此之外,不可能做两件事 – epascarello

回答

1

对于这种特定情况下,可以一起发送,如:

$('#save').on('click', function(event){ 
    event.preventDefault(); 
    var form = $('<form method="post"></form>'); 
    $(form).append($('#field1')); 
    $(form).append($('#field2')); 

    $(form).appendTo('body'); 

    $(form).submit(); 

}); 
0

如果两种形式都具有相同的动作,你能不能换一个<form>标签内的所有领域?

通过这种方式,您可以同时从两个表单中提交字段,而不需要另一个答案中提出的JS。

+0

是的,你是对的,但在问题中,用户说输入字段在html文档中相差很远(在不同的地方)。可能无法将它们封装在一个表单标签中。 –

+0

是的,这是问题,这两种形式都非常appart.I首选答案由 – Apostolos