2012-11-19 109 views
5

我已經嘗試了多種方式做到這一點,通過在stackoverflow搜索答案。提交兩個表單提交一個按鈕jQuery

我有兩種形式

表1個基本設置:

<form action="/post" class="frm-form" method="post" name="post" 
onsubmit="return vB_Editior['text_editor'].prepare_submit(0,0)" id="quick_reply"> 
    <textarea></textarea> 
     <input type="submit" name="post" value="Send"> 
</form> 

表2基本設置:

<form enctype="multipart/form-data" id="tagnotif" style="display:none;" 
onsubmit="return vB_Editor['text_editor'].prepare_submit(0,0)" name="post2" 
method="post" action="/privmsg"> 
    <input id="username" class="post" type="text" tabindex="1" size="25" 
     name="username[]"style="margin:1px 0"><br /> 
    <input id="acpro_inp10" class="post" type="text" 
    onkeypress="if (event.keyCode==13){return false}" title="" tabindex="2" 
    maxlength="64" size="45" value="You have been tagged" name="subject"><br /> 
    <textarea id="textingnotification" rows="15" cols="9" 
    name="message" tabindex="3"></textarea> 
    <input type="hidden" value="" name="lt"> 
    <input type="hidden" value="inbox" name="folder"> 
     <input type="hidden" value="post" name="mode"> 
</form> 

我只需要在第一個SEND按提交這兩種形式表格

試用此代碼變量與主腳本:雖然它不會p屁股都,也不會刷新頁面...

$(document).ready(function() { 
    $('#quick_reply').ajaxForm(function() { 
      alert("Thank you for your submitting form 1"); 
    }); 
    $('#tagnotif').ajaxForm(function() { 
      alert("Thank you for your submitting form 2"); 
    }); 

}); 

function mySubmitFunction() { 
    $("#quick_reply").submit(); 
    $("#tagnotif").submit(); 
} 
+0

你爲什麼不能讓他們一個形成? – Andrew

+0

然後讓他們只有一種形式? – wakooka

+0

需要兩個單獨的表單,因爲一個發送到/ privmsg,另一個發送到/ post – EasyBB

回答

4

我不認爲你能做到從一個HTML頁面兩場常規post請求,因爲使職位涉及離開頁面並按照重定向響應。

如果您通過ajax提交表單,爲什麼不製作單個ajax按鈕並獲取所需的參數以粘貼請求? IE:

$.ajax({ 
    type: 'POST', 
    dataType: 'JSON', 
    data: {param1: $('input#param1').val(), param2: $('input#param2').val()}, 
    url: 'url to post to', 
    success: (your success callback function goes here) 
}) 
+0

一種形式是評論一種形式。其他形式是發送PM。基本上我的黑客是這樣的,當一個用戶標記另一個用戶時,它向標記的用戶發送一個PM,指出該標記在哪裏以及他們被標記了。這就是爲什麼我需要發送它們兩個。我將如何去做這件事?沒有PHP,因爲我沒有訪問它的託管網站。 – EasyBB

+0

也創建一個AJAX按鈕將是困難的,第一種形式是由一個PHP變量{quick_reply}生成的,所以是我實際上沒有訪問該位,只是第二位。第二個代碼是隱藏的,這基本上是一個黑客站點託管網站 – EasyBB

+0

你是否能夠改變頁面上的標記,或者你完全卡住了你擁有的? – Andrew

1

這樣做首先你需要刪除所有來自這兩種形式 提交按鈕如果表單有提交按鈕,這是不行的。

第一形式

<form action="/post" id="frm-form" class="frm-form" method="post" name="post" 
onsubmit="return vB_Editior['text_editor'].prepare_submit(0,0)" id="quick_reply"> 
    <textarea></textarea> 
     <input id="frm-submit" type="button" name="post" value="Send"> 
</form> 

第二形態

<form enctype="multipart/form-data" id="tagnotif" style="display:none;" 
onsubmit="return vB_Editor['text_editor'].prepare_submit(0,0)" name="post2" 
method="post" action="/privmsg"> 
    <input id="username" class="post" type="text" tabindex="1" size="25" 
     name="username[]"style="margin:1px 0"><br /> 
    <input id="acpro_inp10" class="post" type="text" 
    onkeypress="if (event.keyCode==13){return false}" title="" tabindex="2" 
    maxlength="64" size="45" value="You have been tagged" name="subject"><br /> 
    <textarea id="textingnotification" rows="15" cols="9" 
    name="message" tabindex="3"></textarea> 
    <input type="hidden" value="" name="lt"> 
    <input type="hidden" value="inbox" name="folder"> 
     <input type="hidden" value="post" name="mode"> 
</form> 

JQuery的

$("#frm-submit").change(function(){ 
    $("#frm-form").submit(); 
    $("#tagnotif").submit(); 
}); 

這將刷新頁面並提交兩種形式

+0

好了,現在我不使用jQuery這是沒用的;)我們也承諾,他們可以做到這一點更簡單和靈活地交錯張貼。 – EasyBB