jQuery验证带有隐形reCaptcha的插件

时间:2018-11-16 12:41:14

标签: javascript jquery html recaptcha

我在集成jQuery验证插件和Invisible reCaptcha时遇到问题。 我按照提供的说明加载了api.js文件,并在“提交”按钮上方添加了以下内容:

<div id="recaptcha" class="g-recaptcha" data-sitekey="xxxxxxxxxxxxxxxxxxxxxxxx" data-callback="formSubmit" data-size="invisible"></div>

我还在我的js文件中添加了以下功能:

function formSubmit(response) {
    // submit the form which now includes a g-recaptcha-response input
    $("#open-account").submit();
    return true;
}

这是我的验证和提交处理程序:

jQuery('#open-account').validate({
    submitHandler: function(form){
        if (grecaptcha.getResponse()) {
            //Code for serializing the data and submit the form
            form.submit();
        } else {
            grecaptcha.reset();
            grecaptcha.execute();
        }
    }
}

问题是您需要提交两次表单才能使其正常工作。第一次提交后,控制台输出为:

ReCAPTCHA couldn't find user-provided function: formSubmit

第二次单击/提交后-表单将正常工作。 我搜索了此错误,发现的解决方案也是在全局空间中定义回调函数:

window.formSubmit = formSubmit;

但是它给了我相同的结果-我需要单击teice才提交,现在控制台输出是:

Uncaught (in promise) null

我在做什么错?预先感谢。

0 个答案:

没有答案