在提交表格之前,请检查是否填写了重述2

Check if recaptcha2 is filled before submitting the form

本文关键字:是否 检查 表格 提交      更新时间:2023-10-06

如何在提交前检查是否填写了新的(ver2)重述表格?

问题是这个captcha在iframe内部,不允许从中读取id

为了澄清问题,我不想验证captcha,只是在提交表格之前检查一下它是否已填写。

编辑
我在引导模式中有一个表单,如果我要提交它来检查captcha服务器端,那么我必须将用户重定向回他使用的页面,并再次显示模式并发出错误通知。

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

您的最佳选择是使用来自重述API:的getResponse

grecaptcha.getResponse(opt_widget_id)

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

这里有文件可供参考。

好的,i应该可以使用回调来实现这一点:

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