这是一种类似的重复问题,但我认为在这种情况下我正确地使用了event.preventDefault()
。
这里有一个JSFiddle,您可以在其中查看代码: http://jsfiddle.net/SeEw2/2/
基本上,单击提交按钮。
在Chrome中:没有任何反应-正确的响应。
在Firefox中: 页面重新加载,糟糕!
那么为什么Firefox会重新加载页面而Chrome不会呢? 我一直在使用Firebug进行调试,但两者都没有出现错误......
这是一种类似的重复问题,但我认为在这种情况下我正确地使用了event.preventDefault()
。
这里有一个JSFiddle,您可以在其中查看代码: http://jsfiddle.net/SeEw2/2/
基本上,单击提交按钮。
在Chrome中:没有任何反应-正确的响应。
在Firefox中: 页面重新加载,糟糕!
那么为什么Firefox会重新加载页面而Chrome不会呢? 我一直在使用Firebug进行调试,但两者都没有出现错误......
event
没有被初始化。
http://jsfiddle.net/SeEw2/4/ $('#ajaxsearch').click(function(event) {
// Stop the Search input reloading the page by preventing its default action
event.preventDefault();
啊,我过去也遇到过类似的问题。与其使用 event.preventDefault() ,不妨尝试将事件传递给:
function ie8SafePreventEvent(e){
if(e.preventDefault){ e.preventDefault()}
else{e.stop()};
e.returnValue = false;
e.stopPropagation();
}
我知道它说的是IE,但是我从来没有遇到过问题 =]
(注:该句话是指作者从未遇到在使用IE浏览器时出现的问题)不要寻找提交按钮的点击事件,为什么不使用$(form).submit处理程序呢?只要在处理程序的末尾加上'return false',页面就不会重新加载。
function(event)
这样传递事件对象,但我的问题是为什么要这样做呢?当你可以使用 type="button"
并通过 onclick 传递值时,为什么要经过所有这些步骤呢?本质上,这就是你使用整个过程所做的事情。type="button"
。虽然我没有使用 onclick
,但从更大的范围来看,这样做更方便。 - Jacktype="button"
是否会将 enter 键盘触摸识别为提交?无法在 jsfiddle 上进行真正的测试,也无法在我的工作中以其他方式进行测试,我很好奇 :) - ShikiryupreventDefault()
。这是您的意思吗? :) - Jack<form>
标签分配了id #ajaxsearch
,然后运行了$('#ajaxsearch').submit([...]
- 这样两者都可以工作。 - Jack.submit()
处理程序是否可行。在这种情况下,它似乎是更好的解决方案(form
中没有action
(顺便问一下,你为什么还要使用form
;)?)无论如何,如果JS被禁用,这里就没有后备方案了。 - Shikiryu我是这样解决的,由于我的代码略有不同,这可能对其他人有所帮助。我的初始代码如下。
<form id="enrollstudentform" onsubmit="return enrollStudents()">
...
</form>
我的js函数看起来像这样
function enrollStudents() {
// Stop Form.
event.preventDefault();
// Other code
}
我必须在函数调用中传递参数事件并在函数中接收它。
<form id="enrollstudentform" onsubmit="return enrollStudents(event)">
...
</form>
js code:
function enrollStudents(event) {
// Stop Form.
event.preventDefault();
// Other code
}
希望它有所帮助。
window.event
。(而像你的event
这样的免费参考——因为你忘记将其包含在事件处理程序签名中,正如 ClemDesm 最先指出的那样 ——意味着你退回到了window.event
。)Firefox 不会为 IE 特定的代码提供任何帮助。 - T.J. Crowder