2016-08-01 302 views

回答

0

这意味着你将发布与阿贾克斯,如果其成功与否,当你得到你的回调,那么你可以有一个JavaScript函数,以便提交你需要做的/后或任何行动。我使用回调来允许登录按钮提交,如果尚未完成,则该按钮保持禁用状态。您仍然需要向Google提交您的挑战,以便他们验证它是否成功。这是一个简单的例子。

<div class="g-recaptcha" id="login" data-callback="captcha_filled" 
      data-expired-callback="captcha_expired" data-sitekey="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"></div> 

function captcha_filled() { 
    $("#submitLogin").prop('disabled', false); 
} 
+0

但不会执行'grecaptcha.getResponse()'实现相同?据我所知,如果用户忘记检查验证码或未能通过挑战,那么'grecaptcha.getResponse()'将不会有值。在这种情况下,使用自己的AJAX文章有什么意义? – faridghar

+0

我做了一个测试,看起来你是对的。如果挑战未完成并调用'grecaptcha.getResponse()',它将返回null,如果成功,它将返回一个值。在你的问题中,你提到了第三种方法作为数据回调,这让我感到困惑,但这不是这种方法所做的。您可以使用上述调用来验证您的挑战,但数据回调只是在完成时执行任何类型的功能。以下是关于[Javascript API](https://developers.google.com/recaptcha/docs/display#js_api)的更多信息。 – Ryan89