2013-03-08 64 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