我希望停止提交表单,而是执行其他操作(window.location.href
重定向到漂亮打印的网址)。但我甚至无法获得阻止表单提交的基本部分。
据我了解,这样的事情应该有效:
$(function($){
$("#search_form").submit(function(e){
console.log("cancelling submit");
return false;
});
});
我还尝试了e.preventDefault()
,e.stopPropagation()
以及这些的各种组合。 "cancelling submit"
被打印在Firebug控制台上(因此事件会触发),但无论我做什么,表单都会提交。
jQuery文档和逻辑意味着它应该可以工作,但事实并非如此。我做错了吗?
挂钩点击事件可能会更容易,但表单可以多种方式提交 - 点击按钮,按Enter键,可能还有其他我没想过的东西,所以我想尝试提交事件。
我正在Firefox中测试它。
编辑:事实证明<button type='submit' onclick='this.form.submit()'>Search</button>
导致了这一点。回想起来,这似乎很愚蠢。感谢大家的帮助。
答案 0 :(得分:4)
我刚刚在http://jsfiddle.net/UZwr5/
测试了您的代码您提供的代码适用于该演示。很可能你的执行中某处出现了一个错误,导致return false;
无法运行。
答案 1 :(得分:1)
一起尝试所有这些return false
和e.StopPropagation()
以及e.preventDefault()
但更像是这样:
if(e.stopPropagation)
{
e.stopPropagation();
}
if(e.preventDefault)
{
e.preventDefault();
}
return false;
这使得它更符合跨浏览器标准。