繁体   English   中英

jQuery event.preventDefault()在Firefox中不起作用(包括JSFiddle)

[英]jQuery event.preventDefault() not working in Firefox (JSFiddle included)

这是一种与其他一些类似的重复,但我认为我在这种情况下正确使用了event.preventDefault()

这是一个JSFiddle,你可以看到代码: http//jsfiddle.net/SeEw2/2/

基本上,单击“提交”按钮。

在Chrome中:没有任何反应 - 正确的回应。

在Firefox中 :页面重新加载,哦,不!

那么为什么页面在Firefox而不是Chrome中重新加载? 我一直在Firebugging它并没有出现任何错误......

代码中的变量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,但我从来没有遇到过问题,因为=]

我这样解决了,因为我的代码有点不同,这可能对其他人有帮助。 我的初始代码看起来像这样。

<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代码:

function enrollStudents(event) {
    // Stop Form.
    event.preventDefault();
    // Other code
}

我希望它有所帮助。

因为你没有像function(event)那样传递事件对象,但是我的问题是为什么当你可以使type="button"和onclick传递值时,甚至可以通过所有这些? 从本质上讲,你在整个过程中做了什么。

而不是在提交按钮上查找单击事件,为什么不使用$(form).submit处理程序?

只要您在处理程序的末尾有'return false',页面就不会重新加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM