有什么方法可以阻止javascript从jQuery的.post回调后执行?

时间:2011-01-12 23:20:36

标签: php jquery recaptcha

我正在尝试使用jQuery创建Recaptcha和php的ajax验证。

使用jQuery,我试图让javascript停止执行,如果返回的数据有任何值(这将是recaptcha错误)并输出错误。在回调上,当sendform.php没有响应包含验证码和我的邮件脚本的文件时,错误显示正常并且重新加载重新加载,但“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提交其余的表单数据来发送电子邮件)。但是,当返回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 个答案:

答案 0 :(得分:1)

好吧,我基本上重新安排了很多代码并调用了一些已定义的函数,而不是尝试返回false并停止脚本。我只需要采用不同的方法。