我正在尝试使用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();
}
答案 0 :(得分:1)
好吧,我基本上重新安排了很多代码并调用了一些已定义的函数,而不是尝试返回false并停止脚本。我只需要采用不同的方法。