Chcę zresetować widżet Google reCaptcha po przesłaniu formularza za pośrednictwem AJAX i wystąpieniu błędów lub formularzu wejściowym. Używam wielu widżetów na tej samej stronie, więc wyraźnie renderuję te widżety.Resetowanie Google reCaptcha nie działa
Mój kod HTML:
<div class="g-recaptcha" id="recaptcha-1"></div>
<div class="g-recaptcha" id="recaptcha-2"></div>
...
<div class="g-recaptcha" id="recaptcha-20"></div>
Ładowanie widget
<script src="https://www.google.com/recaptcha/api.js?onload=reCaptchaCallback&render=explicit&hl=en" async defer></script>
<script>
var reCaptchaCallback = function() {
var elements = document.getElementsByClassName('g-recaptcha');
for (var i = 0; i < elements.length; i++) {
var id = elements[i].getAttribute('id');
grecaptcha.render(id, {
'sitekey' : 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
});
}
};
</script>
Po Złożenie:
var id = $('.g-recaptcha', form).attr('id');
grecaptcha.reset(id);
Forma jest wystąpienie złożonego formularza.
Wszystko działa prawidłowo, gdy formularz jest prawidłowo wypełniony. Ale reCaptcha nie resetuje ani nie ładuje ponownie. Wypróbować to grecaptcha.reset()
, ale bez wyników.
Każdy pomysł?
Czy wyświetla błąd? – RafaelKr
Niestety nie :(Nie mam żadnych błędów Wygląda na to, że ponownie załaduję cały plik "recaptcha.js" ponownie – quarky