reCAPTCHA невидим без функции обратного вызова - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть форма, которая обрабатывается с помощью прослушивателя событий и не очень хорошо работает с функцией обратного вызова recaptcha.

Внутри формы:

Форма

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

Теперь он использует функцию onSubmit для обработки для получения токена, как показано ниже.

reCaptcha callback и обработчик токена

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

});

1 Ответ

0 голосов
/ 24 сентября 2018

Вы должны активировать отправку формы:

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

Функция обработчика отправки формы:

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

    event.preventDefault();

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

});
...