Javascript 是否可以取消提交活动?
我想阻止表单被提交,并改为执行其他操作(Javascript 是否可以取消提交活动?,javascript,jquery,Javascript,Jquery,我想阻止表单被提交,并改为执行其他操作(window.location.hrefredirect to pretty printed URL)。但我甚至不能得到阻止表单提交的基本部分 据我所知,这样的事情应该是可行的: $(function($){ $("#search_form").submit(function(e){ console.log("cancelling submit"); return false; }); }); 我还尝试了e.preventDefa
window.location.href
redirect to pretty printed URL)。但我甚至不能得到阻止表单提交的基本部分
据我所知,这样的事情应该是可行的:
$(function($){
$("#search_form").submit(function(e){
console.log("cancelling submit");
return false;
});
});
我还尝试了e.preventDefault()
,e.stopPropagation()
,以及它们的各种组合<代码>“取消提交”会打印在Firebug控制台上(因此事件会触发),但不管我做什么,表单都会提交
jQuery文档和逻辑意味着它应该可以工作,但事实并非如此。我做错什么了吗
挂接到click事件可能更容易,但表单可以通过多种方式提交-单击按钮、按Enter键,可能还有其他一些我没有想到的事情,所以我尝试只接受submit事件
我正在Firefox中进行测试
编辑:原来是
Search
导致了这种情况。回想起来,这似乎很愚蠢。感谢所有人的帮助。请将它们一起尝试返回false
和e.StopPropagation()
和e.preventDefault()
但更像这样:
if(e.stopPropagation)
{
e.stopPropagation();
}
if(e.preventDefault)
{
e.preventDefault();
}
return false;
这使它更符合跨浏览器的要求。将它们一起尝试
返回false
和e.StopPropagation()
和e.preventDefault()
但更像这样:
if(e.stopPropagation)
{
e.stopPropagation();
}
if(e.preventDefault)
{
e.preventDefault();
}
return false;
这使它更加兼容跨浏览器。我刚刚在以下位置测试了您的代码:
您提供的代码在该演示中起作用。最有可能的是,您在执行过程中的某个地方出现了错误,从而阻止
返回false代码>正在运行。我刚刚在以下位置测试了您的代码:
您提供的代码在该演示中起作用。最有可能的是,您在执行过程中的某个地方出现了错误,从而阻止返回false代码>从运行。我认为submit()方法的全部要点在于它发生在submit上。根据定义,当事件触发时,表单已经提交,您尝试返回false。是的,@kennis是对的,我相信。是否可以改为调用submit按钮上的click事件?如果存在ohWaitNevermind()方法,则会在浏览器发出http请求之前触发.submit()事件,允许您运行验证、通过ajax处理表单等,然后取消表单提交请求。提供的代码正常工作,但此问题中缺少导致问题的内容。提示:修复.submit()问题很棘手,因为控制台不会在页面之间保持状态。我建议在处理.submit()问题时使用错误控制台(ctrl+shift+j)来诊断任何错误。我认为submit()方法的要点在于它发生在提交时。根据定义,当事件触发时,表单已经提交,您尝试返回false。是的,@kennis是对的,我相信。是否可以改为调用submit按钮上的click事件?如果存在ohWaitNevermind()方法,则会在浏览器发出http请求之前触发.submit()事件,允许您运行验证、通过ajax处理表单等,然后取消表单提交请求。提供的代码正常工作,但此问题中缺少导致问题的内容。提示:修复.submit()问题很棘手,因为控制台不会在页面之间保持状态。我建议在处理.submit()问题时使用错误控制台(ctrl+shift+j)诊断任何错误。