2015-02-11 85 views
-1

如何填写新的(ver 2)recaptcha填写提交表格 ?在提交表格之前检查是否填写了recaptcha2

问题是这个验证码在iframe中,并且不允许从它读取id。

要清除的东西 - 我不想验证captcha,但只是检查它是否填充之前我提交表单。

编辑
我有引导模式中一种形式,如果我将提交给检查验证码服务器端的话,我就必须重定向用户返回到他用页面,并再次显示模式错误通知。

在我看来,这将是相当不好的用户expereince。

+0

请问为什么要投票? – Jask 2015-02-11 15:46:00

+0

我没有downvote,但不是recaptcha验证输入的全部目的?如果没有填充,问题是什么?它只会返回一个错误... – Tallmaris 2015-02-11 15:46:37

+0

@Tallmaris我编辑了问题 – Jask 2015-02-11 15:50:36

回答

3

你最好的办法是从的ReCaptcha API使用getResponse

grecaptcha.getResponse(opt_widget_id) 

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

Docs are here for reference

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 
    });