J'ai un formulaire d'inscription avec AJAX afin de pouvoir actualiser l'image Recaptcha chaque fois qu'une erreur survient (c'est-à-dire un nom d'utilisateur déjà utilisé).
Je cherche un code compatible avec ReCaptcha pour le recharger en utilisant JavaScript.
Important: la version 1.0 de l'API reCAPTCHA n'est plus prise en charge. Veuillez effectuer la mise à niveau vers la version 2.0.
Vous pouvez utiliser grecaptcha.reset (); pour réinitialiser le captcha.
Source: https://developers.google.com/recaptcha/docs/verify#api-request
Pour reCaptcha v2, utilisez:
grecaptcha.reset();
Si vous utilisez reCaptcha v1 (probablement pas):
Recaptcha.reload();
Cela fonctionnera s’il existe un Recaptcha déjà chargé sur le window
.
(Mis à jour sur la base du commentaire de @ SebiH ci-dessous.)
Si vous utilisez la version 1
Recaptcha.reload();
Si vous utilisez la version 2
grecaptcha.reset();
Ou vous pouvez simplement simuler un clic sur le bouton d'actualisation
// If recaptcha object exists, refresh it
if (typeof Recaptcha != "undefined") {
jQuery('#recaptcha_reload').click();
}
grecaptcha.reset(opt_widget_id)
Réinitialise le widget reCAPTCHA. Un identifiant de widget optionnel peut être passé, sinon la fonction réinitialise le premier widget créé. (de la page Web de Google)
Essaye ça
<script type="text/javascript" src="//www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
<script type="text/javascript">
function showRecaptcha() {
Recaptcha.create("YOURPUBLICKEY", 'captchadiv', {
theme: 'red',
callback: Recaptcha.focus_response_field
});
}
</script>
<div id="captchadiv"></div>
Si vous appelez show Recaptcha, le captcha div sera renseigné avec une nouvelle instance de recaptcha.
Pour les utilisateurs AngularJS:
$window.grecaptcha.reset();
Pour la nouvelle version de reCaptcha v2, utilisez:
grecaptcha.reset();
si vous utilisez new recaptcha 2.0, utilisez ceci: pour le code derrière:
ScriptManager.RegisterStartupScript(this, this.GetType(), "CaptchaReload", "$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});", true);
pour javascript simple
<script>$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});</script>
Si vous utilisez la version 1.0 de l'API reCAPTCHA, veuillez passer à la version 2. (la version 1.0 n'est plus prise en charge)
Utilisez grecaptcha.reset();
pour réinitialiser le captcha.