Ich möchte Google ReCaptcha Widget zurücksetzen, wenn ich mein Formular über AJAX absende und einige Eingabefehler oder Formular gesendet wird. Ich verwende mehrere Widgets auf derselben Seite, damit ich diese Widgets explizit rendere.Google ReCaptcha Reset funktioniert nicht
Mein HTML-Code:
<div class="g-recaptcha" id="recaptcha-1"></div>
<div class="g-recaptcha" id="recaptcha-2"></div>
...
<div class="g-recaptcha" id="recaptcha-20"></div>
Lade 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>
Nach einreichen Form:
var id = $('.g-recaptcha', form).attr('id');
grecaptcha.reset(id);
Form ist die Instanz der vorgelegten Form.
Alles funktioniert gut, wenn Formular korrekt ausgefüllt wird. Aber reCaptcha wird nicht zurückgesetzt oder neu geladen. Versuchen Sie dies grecaptcha.reset()
, aber keine Ergebnisse.
Irgendeine Idee?
Gibt es einen Fehler? – RafaelKr
Leider keine :(. Ich habe keine Fehler. Es sieht aus wie es die ganze 'recaptcha.js' Datei erneut laden. – quarky