如何在JS检查用户已签在谷歌验证码的复选框?如何在JS检查用户已签在谷歌验证码的复选框?(How t

2019-05-13 05:33发布

我头年底前增加了以下

<script src='https://www.google.com/recaptcha/api.js'></script>

我的形式结束前已经加入此

<div class="g-recaptcha" data-sitekey="== xxxxxx =="></div>

我可以看到类似的ReCaptcha https://developers.google.com/recaptcha/

但是,当用户按下数据不勾选复选框的数据提交。 是否有任何其他的代码,我需要添加到检查,如果用户按下的复选框? 希望在JS?

Answer 1:

谷歌已经在复选框被选中回拨电话选项。

添加到您的表单元素:

data-callback="XXX"

例:

<div class="g-recaptcha" data-callback="recaptchaCallback" data-sitekey="== xxxxxx =="></div>

和禁用属性您的提交按钮。

例:

<button id="submitBtn" disabled>Submit</button>

然后,创建一个回调函数,写你需要的任何代码。

例:

function recaptchaCallback() {
    $('#submitBtn').removeAttr('disabled');
};


Answer 2:

您也可以拨打grecaptcha对象来检查。 grecaptcha.getResponse(); 未选中,并检查时有验证码的时候是空的。

grecaptcha.getResponse().length === 0时未选中

function isCaptchaChecked() {
  return grecaptcha && grecaptcha.getResponse().length !== 0;
}

if (isCaptchaChecked()) {
  // ...
}


Answer 3:

要检查是否谷歌验证码被选中与否,你可以通过下面的代码做到这一点:

<script>

if(grecaptcha && grecaptcha.getResponse().length > 0)
{
     //the recaptcha is checked
     // Do what you want here
     alert('Well, recaptcha is checked !');
}
else
{
    //The recaptcha is not cheched
    //You can display an error message here
    alert('Oops, you have to check the recaptcha !');
}

</script>


Answer 4:

让浏览器为你做的工作! (基于slinky2000答案)

注意:这仅仅是为了防止发送“意外”未选中的reCAPTCHA。 您还必须验证服务器端的ReCaptcha因为机器人不关心...

添加有一种无形的输入标签required=true只是下面的属性div.g-recaptcha

<input id='recaptcha_check_empty' required tabindex='-1',
style='width:50px; height:0; opacity:0; pointer-events:none; 
position:absolute; 
bottom:0;'>

括两个宽度一个divposition=relative; 指向的bottom:0; 以上验证码的底部。

现在,浏览器会询问很好地填补了这一领域 - 指向recapcha。

现在,我们需要回调:

<div class="g-recaptcha" data-callback="recaptchaCallback" ...

function recaptchaCallback() { 
    $('#recaptcha_check_empty').val(1);
}


Answer 5:

要检查谷歌验证码V2被选中与否,你可以通过下面的代码做到这一点:

var checkCaptch = false;
     var verifyCallback = function(response) {
        if (response == "") {
             checkCaptch = false;
         }
         else {
             checkCaptch = true;
         }
     };
     $(document).ready(function() {
         $("#btnSubmit").click(function() {
             if (checkCaptch && grecaptcha.getResponse()!="") {
                  //Write your success code here
             }
         });
     })


文章来源: How to check in js that user has checked the checkbox in Google recaptcha?