2013-03-08 66 views
0

我試圖在點擊表單提交按鈕後將用戶重定向到另一個頁面。Onclick Redirect Not Firing

我試圖啓動幾個事件,自動填寫表格的某些部分,然後提交表格&最終將用戶重定向到另一個頁面。

一切工作都期望重定向。我已經嘗試了一些東西,但沒有得到重定向工作表單提交後工作。

我也不希望用戶在表單成功提交之前被重定向。

這裏是我的代碼:

<form id="usp_form" method="post" enctype="multipart/form-data" action=""> 
    <input class="usp_input" type="text" name="user-submitted-title" id="user-submitted-title" value="" /> 
    <input class="usp_input" type="text" name="user-submitted-url" id="user-submitted-url" value=""> 
    <input class="usp_input" type="text" name="user-submitted-tags" id="user-submitted-tags" value=""> 
    <input class="usp_input" type="text" name="user-submitted-category" id="user-submitted-category" value=""> 
    <textarea class="usp_textarea" name="user-submitted-content" id="user-submitted-content" rows="5"></textarea> 
    <input class="hidden" type="hidden" name="user-submitted-name" value="<?php echo $current_user->user_login; ?>"> 

    <input onClick="copyText();copyText2();copyText3();handleClick();" class="usp_input" type="submit" name="user-submitted-post" id="user-submitted-post" value="Submit Post"> 
</form> 



<script language="javascript" type="text/javascript"> 
function copyText3() { 
var output1 = document.getElementById("edit1").innerHTML; 
var output2 = document.getElementById("edit2").innerHTML; 
document.getElementById("user-submitted-title").value = output1 + ', ' + output2; 
} 
</script> 

<script language="javascript" type="text/javascript"> 
function copyText2() { 
var output1 = document.getElementById("edit1").innerHTML; 
var output2 = document.getElementById("edit2").innerHTML; 
var output3 = document.getElementById("template").innerHTML; 
document.getElementById("user-submitted-tags").value = output1 + ', ' + output2 + ', ' + output3; 
} 
</script> 

<script language="javascript" type="text/javascript"> 
function copyText() { 
var output = document.getElementById("templatebody").innerHTML; 
document.getElementById("user-submitted-content").value = output; 
} 
</script> 

<script language="javascript" type="text/javascript"> 
function handleClick() { 
window.location.href='http://website.com/'; 
} 
</script> 
+0

handleClick()被調用..? – 2013-03-08 06:52:25

+0

@DipeshParmar更新 – user1823055 2013-03-08 06:53:26

+0

如此快速編輯代碼.. – 2013-03-08 06:53:36

回答

0

提交按鈕將啓動一個請求,但你也定義在按鈕按下重定向請求,這樣一個將覆蓋其他的(我不知道這一,它可能取決於瀏覽器)。

您可能想要觸發Ajax請求而不是標準提交,並且只有在您收到來自Ajax請求的響應時才執行重定向,以確保沒有信息丟失。

0

你不應該像這樣編碼,而是在事件上註冊你的函數,在HTML之外(它總是更好地分離你的HTML,JS和CSS)。

您可以瞭解有關事件bubling這裏:http://javascript.info/tutorial/bubbling-and-capturing

如果你只是想看看你的代碼工作,不驗證您的形式,只需添加「返回false;」在onclick屬性的末尾。

編輯:Oups對不起,你想提交你的表單,然後重定向。您可以使用ajax請求來完成此操作(請參閱http://www.w3schools.com/xml/xml_http.asp):您使用ajax提交表單,然後重定向。

但IMO,這是一個服務器端行爲:你可能有一個動態語言(Python,PHP,ASP ...?),它處理你的表單提交。在這裏你必須在這個過程之後重定向。

+0

我得到你說的關於在serverside php文件中添加重定向的說法。在表單提交到服務器端後,我會採取我可以添加到php文件中的東西。 – user1823055 2013-03-08 07:17:33

+0

用PHP重定向:http://www.php.net/manual/en/function.header.php – DylannCordel 2013-03-08 07:29:04