我有一个这样的表格:
<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被破坏的问题,所以我认为我错了。
感谢您的帮助!
答案 0 :(得分:2)
感谢您的回答。他们是完全正确的。这个问题是技术债务的一个很好的例子:
系统远端的某个人直接绑定到所有按钮的点击事件,做了一些手动JS表单验证,然后手动提交了父表单。
答案 1 :(得分:0)
是的,preventDefault会停止该事件,您可能也想调用stopPropagation。