web-dev-qa-db-fra.com

Comment recharger ReCaptcha en utilisant JavaScript?

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.

164
AhmetB - Google

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

16
abhiagNitk

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.)

343
AhmetB - Google

Si vous utilisez la version 1

Recaptcha.reload();

Si vous utilisez la version 2

grecaptcha.reset();
59
Dasun

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();
    }
7
AlxVallejo
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)

7
Kutalia

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.

5
Tim

Pour les utilisateurs AngularJS:

$window.grecaptcha.reset();
3
Marcelo C.

Pour la nouvelle version de reCaptcha v2, utilisez:

grecaptcha.reset();
2
Corporate purpose

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>
0
Sara Khan

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.

0
s sharif