尝试这个简单的代码,我很惊讶它没有用,我们走了:
<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()工作正常......我的问题如下:事件处理表单中是否有一些我应该知道的特殊规则?
答案 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位置和工作示例。
可以帮到你。