我在集成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
我在做什么错?预先感谢。