2013-07-25 206 views
1

我必須提交一個形式與目標= _blank並重定向到其他頁面。表單提交後重定向jquery

HTML

<form id="registration_form" name="registration_form" method="post" action="actionurl" target="_blank"> 
    <input type="button" name="submit" id="submit" value="Submit" /> 
</form> 

JQUERY

$(document).ready(function() 
{ 
    $('#registration_form').submit(function(e) 
    { 
     var flag=validate(); 
     if(flag) 
      $(location).attr('href',redirectionurl); 
     return flag; 
    }); 

    $("#submit").click(function(){ 
     $('#registration_form').submit(); // this triggers the submit event 
    }); 
}); 

如果我改變按鈕類型提交表單提交按有效標誌,但重定向不起作用。

如果我使用按鈕而不是提交重定向發生,但形式不提交。

我在哪裏錯了。幫幫我。

謝謝。

+0

由於提交往返服務器,所以在服務器端進行重定向不是更合理嗎? – nubinub

+0

@nubinub任何解決方案? – smk3108

+0

標準表格通常是完整的請求。如果表單已提交,則頁面將重新加載,並且重定向將無法可靠運行,因爲新頁面將加載。如果你想添加額外的邏輯(你不能使用標準提交後無法工作),你需要重寫默認行爲並使用Ajax請求發送表單數據。這聽起來像是你正在有效地重新創建默認行爲......所以服務器端代碼應該只提供新頁面,並且在提交之前完成驗證(然後完成你的工作)。否則,您需要閱讀 –

回答

0

我覺得你很難做到這一點,因爲你將目標定義爲_blank,但你之後提交論壇,所以我建議你在服務器端進行驗證,而不是在jQuery上進行驗證。 html代碼應該看起來像:

<form id="registration_form" name="registration_form" method="post" action="actionurl" target="_blank"> 
    <input type=hidden name="flag_input" value="false"> 
    <input type="button" name="submit" id="submit" value="Submit" /> 
</form> 

而jQuery代碼:

$(document).ready(function() 
{ 
    $('#registration_form').submit(function(e) 
    { 
     var flag=validate(); 
     if(flag) 
      $("#flag_input").val("true") 
    }); 

    $("#submit").click(function(){ 
     $('#registration_form').submit(); 
    }); 
}); 

,然後服務器得到flag_input - 如果屬實,這將重定向,如果沒有,用戶將有再次填補論壇。如果你根本不想重定向,你可以使用ajax。

編輯: 和服務器端(我不知道是什麼LANGUES你使用,但基本就是這樣:)

如果(flag_input ==真) - 生成PDF,然後重定向到X

其他 - 重定向到Y(論壇頁)

讓我知道這是否有幫助。 Goodluck!

+0

我需要在表單上生成一個pdf格式,並將表單頁面重定向到其他頁面。如何做 – smk3108

+0

好的,所以你可以使用這段代碼,並在服務器端:(我不知道你用什麼語言,但基本是這樣:) if(flag_input == true) - 重定向到X ,否則重定向到Y(我編輯了答案) –