JQuery AJAX во время отправки формы [ошибка] - PullRequest
0 голосов
/ 21 марта 2011

Почему это возвращается с ошибкой:

jQuery('#the_form').submit(function() {
    jQuery.ajax({
        url: 'stats.php?increment=true',
        success: function() {
            alert('Load was performed.');
        },
        error: function() {
            alert('Load wasnt performed.');
        }
    });

    return true;
});

и это не так (возврат ложный, все остальное тоже самое):

jQuery('#the_form').submit(function() {
    jQuery.ajax({
        url: 'stats.php?increment=true',
        success: function() {
            alert('Load was performed.');
        },
        error: function() {
            alert('Load wasnt performed.');
        }
    });

    return false;
});

и как мне вызвать этот скрипт перед отправкой (внешнему действию)?

Ответы [ 2 ]

5 голосов
/ 21 марта 2011

Вы подписались на событие .submit формы. В первом случае вы возвращаете true, что означает, что вы оставляете действие по умолчанию для запуска, которое заключается в отправке формы на сервер и перенаправлении браузера на stats.php. Поскольку браузер немедленно перенаправляет ваш вызов AJAX, у него никогда не будет времени завершить.

Во втором случае вы возвращаете false, что означает, что вы отменяете отправку формы по умолчанию и вместо этого отправляете запрос AJAX, который имеет достаточно времени для выполнения.

0 голосов
/ 21 марта 2011

Хорошо, когда вы отправляете форму, если вы возвращаете true в вашем методе .submit(), это заставит браузер на самом деле отправлять данные, а не просто делать вызов AJAX. Поскольку вы используете AJAX, вам следует заблокировать отправку формы, поскольку вы ожидаете, что ваш вызов AJAX вернется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...