Есть ли способ остановить выполнение JavaScript после обратного вызова из .post jQuery? - PullRequest
0 голосов
/ 13 января 2011

Я пытаюсь создать ajax-проверку Recaptcha и php с помощью jQuery.

С помощью jQuery я пытаюсь заставить JavaScript перестать выполняться, если возвращаемые данные имеют какое-либо значение (которое будет ошибкой recaptcha), и вывести ошибку.При обратном вызове и при отсутствии ответа от sendform.php файла, который содержит капчу и мой почтовый скрипт, ошибка отображается нормально, и recaptcha перезагружается, но «return false» ничего не делает.Сценарий продолжает идти после.Я также не могу создавать переменные и использовать их позже в скрипте в функции обратного вызова.,,так есть ли другой способ сделать это?Спасибо

$.post(sendform.php, {recaptcha_response_field:$('#recaptcha_response_field').val(), recaptcha_challenge_field:$('#recaptcha_challenge_field').val(), captchaVerify:'true'},
            function(data) {
                if (data) {
                    output.html(data).slideDown(750);
                    Recaptcha.reload();
                    return false;
                }
        });

На данный момент в коде я хочу, чтобы JavaScript прекратил работать здесь, если sendform.php выдает ошибку (после этих строк кода он продолжает отправлять оставшиеся данные формычерез $ .post для отправки электронного письма).Однако return false ничего не делает, когда находится внутри функции обратного вызова $ .post, скрипт просто игнорирует ее и продолжает работать.

Вот код в sendform.php.У меня есть Recaptcha, возвращая либо свою ошибку, если она не работает, либо ничего, если он добивается успеха, как это:

if (!$resp->is_valid) {
    // What happens when the CAPTCHA was entered incorrectly
    die('The reCAPTCHA wasn’t entered correctly. Please try it againg.' .'(reCAPTCHA said: ' . $resp->error . ')');
} else if (isset($_POST["captchaVerify"])) {
    die();
}

1 Ответ

1 голос
/ 13 января 2011

Хорошо, я в основном переставил большую часть кода и вызвал некоторые уже определенные функции вместо того, чтобы просто возвращать false и останавливать скрипт. Я просто должен был подойти к этому по-другому.

...