7

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

<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() 工作正常......我的问题如下:将事件处理到表单中是否有一些我应该知道的特殊规则?

4

2 回答 2

12

如果您不希望表单提交,则需要返回 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);
于 2013-05-21T21:34:36.187 回答
1

你也可以用location.replace()。以下链接通过工作示例解释了 JavaScript 位置。

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

可以帮助你。

于 2013-05-22T07:15:50.247 回答