我使用最新版本的ReCaptcha(隐形版)。
我理解如何将它与普通表单和Ajax表单一起使用,但我遇到了一个小问题。
我想使用Captcha和jQuery validate插件,所以我使用:
<form id="myForm" action="send.php" method="post">
<h4>Your name</h4>
<input type="text" name="name" required="required" />
<div id='recaptcha' class="g-recaptcha"
data-sitekey="***************"
data-callback="onSubmitForm"
data-badge="bottomleft"
data-size="invisible"></div>
<input type="submit" value="Send form" class="button">
</form>
在我的JS中:
function onSubmitForm(data) {
if ($("#gRecaptchaResponse").val() == '') {
$("#gRecaptchaResponse").val(data);
}
$('#myForm').submit();
}
$(function() {
$('#myForm').validate({
submitHandler: function(form) {
// execute google recaptcha
grecaptcha.execute();
// test fires everytime of course ...
console.log('Test');
}
});
});
我在官方文档(https://developers.google.com/recaptcha/docs/invisible#example)的Google示例中理解他们处理单击按钮(而不是提交按钮),但我想使用提交触发器,这样,用户可以按“输入” “按钮提交表格。
但是现在,有一种循环,jQuery验证句柄表单提交,并在验证后,执行回调,提交表单...然后表单永远不会被提交(到PHP动作)。结果非常奇怪。
使用提交触发器的任何简单方法?