使用window.location.href重定向表单提交

时间:2013-05-21 21:29:46

标签: html forms

尝试这个简单的代码,我很惊讶它没有用,我们走了:

<form method="get" action="" >
    <input type="submit" value="validate" onclick="redirect(); alertIt(); "/>
</form>
<script>
    function redirect(){
       window.location.href = "test.html" ;
    }
</script>
<script>
function alertIt(){
   alert("redirect");
}
</script>

代码只是在点击提交按钮时重定向到“test.html”,但它没有做到。另一方面:alertIt()工作正常......我的问题如下:事件处理表单中是否有一些我应该知道的特殊规则?

2 个答案:

答案 0 :(得分:10)

如果您希望表单不提交,则需要返回false。

function redirect(){
       window.location.href = "test.html" ;
}

应该是

function redirect(){
    window.location.href = "test.html" ;
    return false;
}

你也应该挂钩submit事件,而不是最好点击事件,并在处理程序中返回。

onclick="return redirect(); alertIt(); " 

会工作(但不警惕)

最理想的是,您要做的是在表单中添加一个id,例如myForm,并附加一个事件。

document.getElementById("myForm").addEventListener("submit",function(){
    alertIt();
    return redirect(); 
},false);

答案 1 :(得分:1)

您也可以使用location.replace()。以下链接说明了JavaScript位置和工作示例。

http://www.codecandle.com/Articles/450/Javascript/Browser-Objects/Javascript-Location/codedetail.aspx

可以帮到你。