Cześć!
Pracuję nad stroną, w której chcę użyć Google reCAPTCHA w wersji 3. Mój kod JS jest zgodny z przykładami, lecz mimo wszystko zapisuje się tylko wynik, a formularz się nie wysyła (działa, przy dodaniu drugiego przycisku wysyłającego). Oczywiście chodzi o to, aby po naciśnięciu przycisku zapisywał się wynik i formularz wysyłał się automatycznie. Poniżej mój kod - z góry dzięki za pomoc.
P.S.: Dodałem jeszcze własną stylizację - ciemny motyw (poprzez grecaptcha.render()). Wiem, że całość da się zrobić dużo prościej, ale zależy mi, żeby to zachować.
<script>
function onSubmit(e){
e.preventDefault();
grecaptcha.ready(() => {
grecaptcha.execute('G-reCAPTCHA-site_key', {'action' : 'forgot-password'})
.then((token) => {
$('#log-form').submit();
});
});
};
var onloadCallback = function(){
grecaptcha.render('g-recaptcha', {
'sitekey' : 'G-reCAPTCHA-site_key',
'theme' : 'dark'
});
};
</script>
<form method="post" id="log-form">
<div class="form" style="margin-top:20vh!important;">
<h3 class="mb-4">Przypominanie hasła</h3>
<input type="mail" name="fg_pss_mail" placeholder="Wpisz swój adres e-mail" onfocus="this.placeholder=''" onblur="this.placeholder='Wpisz swój adres e-mail'" value="">
<button
class="g-recaptcha"
id="g-recaptcha"
data-callback="onSubmit(this)"
data-action="forgot-password"
>Przypomnij hasło</button>
</div>
</form>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=pl" async defer></script>