2014-06-13 181 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