reCAPTCHA 不带回调函数不可见

reCAPTCHA invisible without callback function

我有一个用事件侦听器处理的表单,它不能很好地与 recaptcha 的回调函数一起使用。

表格内:

形式

<form class="myform>
...
<button class="g-recaptcha" data-sitekey="your_site_key" data-callback='onSubmit'>Submit</button>
</form>

现在它依赖函数onSubmit来处理获取令牌,如下所示。

reCaptcha 回调和令牌处理程序

var onSubmit = function(token) {
  console.log('token');
};

但是我想在下面的表单处理程序中获取令牌。 onSubmit 和下面的 eventlistener 同时触发但不能交换令牌。

我想要令牌的表单处理程序

$('form.myform').submit(function (event) {

    event.preventDefault();

    var form = $(this);
    var token = ''; // how do I get the token?
    submitForm(form, token); // token is not defined here but I want it to be

});

您应该触发表单提交:

var onSubmit = function(token) {
    $( "form.myform" ).submit();
};

您的表单提交处理函数:

$('form.myform').submit(function (event) {

    event.preventDefault();

    var form = $(this);
    var token = grecaptcha.getResponse(); 
    submitForm(form, token);

});