在提交表单之前检查recaptcha2是否已填满

时间:2015-02-11 15:42:12

标签: javascript jquery recaptcha

如何检查是否填写了新的(第2版)recaptcha 形式?

问题是这个验证码在iframe内部,不允许从中读取ID。

要清除问题 - 我不想验证验证码,只是在我提交表单之前检查它是否已填满。

修改
我在bootstrap模式中有一个表单,如果我将它提交以检查验证码服务器端,那么我将不得不将用户重定向到他正在使用的页面并再次显示错误通知模式。

在我看来,这将是一个相当糟糕的用户体验。

2 个答案:

答案 0 :(得分:4)

您最好的选择是使用recaptcha API中的getResponse

grecaptcha.getResponse(opt_widget_id)

opt_widget_id是可选的,是从render调用返回的id,但是,如果缺少,它将引用第一个创建的recaptcha小部件(如果你只有一个小部件就足够了)。

Docs are here for reference

答案 1 :(得分:0)

好吧,我应该可以使用回调来执行此操作:

var captchaFilled = false;
var formValidator =  function(data){

  if(data.length>10){
    captchaFilled = true;
}
}
    $('#form1').on('submit', function(e) {


            if(captchaFilled===false){
              e.preventDefault();  
              alert("verify yourself");
              return false;
            }
            else{
              alert("ok");
                return true;
            }


        });

    grecaptcha.render('captchadiv', {
                'sitekey' : '************',
                'callback' : formValidator
    });