检测/收听google recaptcha提交?

时间:2015-10-19 18:00:03

标签: javascript forms recaptcha

我尝试在线搜索但没有找到任何内容。

我需要检查用户何时提交recaptcha并从发送表单(例如,也作为提交按钮)。 我知道google的recaptcha是iframed 所以我想知道如何做到这一点:

  1. 实际上使用javascript在本地收听提交事件并提交表单
  2. 在我的php服务器中监听提交,然后将请求的结论传达给我的用户
  3. 我希望1实际上是可能的,因为第二个会对臀部造成巨大的痛苦。有没有人知道如何做到这一点,最好是方法1?

3 个答案:

答案 0 :(得分:1)

Google提供了验证验证码的功能。您需要在允许表单提交之前进行验证。有关详细信息,请参阅其文档:https://developers.google.com/recaptcha/docs/display

我的设置是这样的:     <script src='https://www.google.com/recaptcha/api.js?onload=reCaptchaCallback&render=explicit'></script>

var RC2KEY = 'sitekey';
function reCaptchaVerify(response) {
    if (response === document.querySelector('.g-recaptcha-response').value) {
        /* do something */
    }
}

function reCaptchaExpired () {
    /* do something when it expires */
}

function reCaptchaCallback () {
    grecaptcha.render('id', {
        'sitekey': RC2KEY,
        'callback': reCaptchaVerify,
        'expired-callback': reCaptchaExpired
    });
}

答案 1 :(得分:0)

  

使用javascript在本地收听提交事件并提交表单

您想收听reCaptcha提交并发送表单。然后查看我对类似问题的回答:ReCaptcha v2.0 auto submit

重要

重要的是,只有在Google服务器验证成功时才需要提交表单。答案中的代码可以解决这个问题:

success: function( data  ) {  
                var res = data.success.toString(); 
                if (res)
                   { document.myform.submit(); }    
            }  // end success 

答案 2 :(得分:-3)