У меня проблемы с интеграцией плагина проверки jQuery и невидимой 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
Что я делаю не так?Заранее спасибо.