jQuery load () перед отправкой формы - PullRequest
0 голосов
/ 16 апреля 2011

При отправке формы я пытаюсь использовать load () для запуска сценария PHP, добавления данных в базу данных и отправки формы по завершении. Однако, если форма отправляет истину, данные не добавляются в мою базу данных, но если она возвращает ложь, это так. Вот в основном то, на что я смотрю:

if(//form not empty){
    $j('#allset').load(url, function(){
        return true;
    });
} else {
    return false;
}

Я не знаю, имеет ли это значение, но форма, которую я пытаюсь отправить, является формой PayPal.

Кто-нибудь знает, что я могу сделать, чтобы это исправить? Спасибо!

1 Ответ

0 голосов
/ 16 апреля 2011

Возвращение true из обратного вызова не будет иметь никакого эффекта.Обработчик события вернется сразу после вызова Ajax.Он не будет ждать завершения вызова (Ajax - асинхронный ).

В любом случае вы запрещаете отправку формы, а затем снова отправляете форму после завершения запроса Ajax.Как то так:

(function() {
    var processed = false;

    $(form).submit(function(event){
        if(processed) {            // data sent fo the server?
            processed = false;
            return true;
        }

        event.preventDefault();    // prevent form submission

        if(/* form not empty */) {
            $.get(url, function() { // do you need load?
                processed = true;
                $(form).submit();
            });
        }
    });
}());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...