jQuery的preventDefault()是否适用于表单的提交事件?

时间:2012-06-01 21:02:00

标签: jquery

我有一个这样的表格:

<form method="post" action="/WebApp/forgotpassword" id="forgot-password">
    <input type="email" name="email" id="email">
    <input type="submit" value="Submit" id="submitBtn">
</form>

使用以下jQuery 1.7.2代码:

$('form#forgot-password').on('submit', function(e) {
    console.debug('Form submit');
    e.preventDefault();
    return false;
});

果然,我点击“提交”按钮,然后在控制台中打印“表单提交”。但是,浏览器(在我的情况下为Firefox)仍然会重定向到/ WebApp / forgotpassword上服务返回的JSON。

我还没有看到任何其他似乎表明jQuery被破坏的问题,所以我认为我错了。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

感谢您的回答。他们是完全正确的。这个问题是技术债务的一个很好的例子:

系统远端的某个人直接绑定到所有按钮的点击事件,做了一些手动JS表单验证,然后手动提交了父表单。

答案 1 :(得分:0)

是的,preventDefault会停止该事件,您可能也想调用stopPropagation。