получается, что решение очень простое.
этот код
var onLoadRecaptcha = function() {
widgetId = grecaptcha.render("formSignup-btnSubmit", { // wrong element ID
sitekey: $("#form_signup-recaptcha").attr("data-sitekey"),
callback: $("#form_signup-recaptcha").attr("data-callback")
});
};
должен быть таким
var onLoadRecaptcha = function() {
widgetId = grecaptcha.render("form_signup-recaptcha", { // corrent element ID
sitekey: $("#form_signup-recaptcha").attr("data-sitekey"),
callback: $("#form_signup-recaptcha").attr("data-callback")
});
};
, потому что элемент recaptcha такой
<div
class="g-recaptcha"
id="form_signup-recaptcha"
data-size="invisible"
data-sitekey="6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI"
data-callback="onSubmitFormSignupUser">
</div>
, поэтому в основном параметры для grecaptcha.render
должны соответствовать свойствам элемента, который имеет класс g-recaptcha
. моя ошибка заключалась в том, что я использовал идентификатор кнопки, хотя элемент с классом g-recaptcha
был div.
Я не помню, чтобы я читал об этой конкретной вещи в документации. Думаю, я слишком глуп, чтобы осознавать это до этого ... Надеюсь, это прояснит ситуацию для других людей с такой же проблемой.