2012-03-30 43 views
0

我試圖將表單提交到新窗口並重定向當前窗口,但它不工作。 我的代碼是:Javascript提交表單並重定向當前頁面

function submit() { 
    document.checkout_confirmation.submit(); 
    setTimeout(window.location = 'http://google.nl', 1000); 
    } 

當我執行這個代碼,它只是重定向頁面,並且不會提交。我是做錯了還是這是不可能的? 隨時問我的問題是否缺少任何細節 在此先感謝

回答

3

正確的做法是讓您的服務器在成功提交後重定向用戶。如果有關該表單的內容無效,該怎麼辦?在這種情況下,你不想重定向,並且你不能只信任你的JavaScript代碼來驗證(因爲它可以被禁用)。請參閱Post/Redirect/Get

此外,您正在使用setTimeout不正確,而不是當您通過submit()方式將瀏覽器發送到其他地方時它可能會工作(您的表單通常會觸發其他「提交」偵聽器併發送通過Ajax,我想)。它應該看起來像這樣:

setTimeout(function() { 
    window.location = 'http://google.nl/'; 
}, 1000); 
+0

我不使用javascript驗證表單,表單的結果提交給我的支付提供商並使用SHA進行驗證。你能否解釋一下,如果你認爲這真的需要,我會如何通過php將表單提交給支付提供商? – william1001 2012-03-30 15:24:24

+1

感謝您解釋settimeout中的錯誤。也許多數民衆贊成在這個問題上,我現在要嘗試。編輯:它現在有效,非常感謝 – william1001 2012-03-30 15:35:33

相關問題