我有一个php脚本,它使用以下行提交表单:
<form action = "javascript:void(null);" onsubmit = "load_ajax();" name = "myform">
现在,为了保护机器人不要滥用我想要实现reCAPTCHA的表单,如下所述:
http://www.darksideofthecarton.com/2008/12/15/validating-recaptcha-with-jquery-and-ajax/
reCAPTCHA逻辑正常显示验证成功/失败消息,但表单未提交。以下是我用来实现reCAPTCHA的代码:
<form action = "javascript:void(null);" onsubmit = "return validateCaptcha()" name = "myform">
我用来调用我的load_ajax()函数的验证部分(表示成功提交表单):
function validateCaptcha()
{
challengeField = $("input#recaptcha_challenge_field").val();
responseField = $("input#recaptcha_response_field").val();
//alert(challengeField);
//alert(responseField);
//return false;
var html = $.ajax({
type: "POST",
url: "ajax.recaptcha.php",
data: "recaptcha_challenge_field=" + challengeField + "&recaptcha_response_field=" + responseField,
async: false
}).responseText;
if(html == "success")
{
$("#captchaStatus").html("Success. Submitting form.");
return false;
// Uncomment the following line in your application
load_ajax();
return true;
}
else
{
$("#captchaStatus").html("Image verification failed, Pls. enter the image verification code correctly.");
Recaptcha.reload();
return false;
}
}
</script>
我不是php / javascript专家,所以需要帮助。
由于
答案 0 :(得分:0)
您的表单未提交,因为您在验证后没有执行任何操作。 在form.action属性中放置一个动作,并在validateCaptcha为true时使用jquery调用它。
答案 1 :(得分:0)
错误出现在验证例程的这一行中(正在返回错误的表单操作例程):
$("#captchaStatus").html("Success. Submitting form.");
return false;