событий jQuery.preventDefault() не работает в Firefox (включая JSFiddle)

это своего рода аналогичный дубликат некоторых других здесь, но я думаю, что я использую event.preventDefault() правильно в данном случае.

вот JSFiddle вы можете увидеть код с:http://jsfiddle.net/SeEw2/2/

в основном, нажмите кнопку Отправить.

В Chrome: ничего не происходит - правильный ответ.

В Firefox: страница перезагружается, О нет!

Итак, почему перезагрузка страницы в Firefox и не Хром? Я Firebugging и без ошибок, приходят в то...

5 ответов


переменная event в коде не инициализируется.

http://jsfiddle.net/SeEw2/4/

выдержка :

 $('#ajaxsearch').click(function(event) {

        // Stop the Search input reloading the page by preventing its default action
        event.preventDefault();

Ах, у меня была аналогичная проблема в прошлом. А не событие.preventDefault () попробуйте передать событие в:

    function ie8SafePreventEvent(e){
    if(e.preventDefault){ e.preventDefault()}
    else{e.stop()};

    e.returnValue = false;
    e.stopPropagation();        
}

Я знаю, что он говорит IE, но у меня никогда не было проблем с ним с =]


потому что вы не передаете объект события, как function(event), но мой вопрос в том, почему даже пройти через все это, когда вы можете сделать type="button" и onclick передают значения? В сущности то, что вы делаете со всем этим процессом.


вместо того, чтобы искать событие щелчка на кнопке отправки, почему бы не использовать $(форма).submit обработчик?

пока у вас есть "return false" в конце обработчика, страница не перезагрузится.


Я решил это таким образом, потому что мой код немного отличается, это может быть полезно для других людей. Мой первоначальный код выглядел так.

<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
}

надеюсь, это поможет.