web-dev-qa-db-fra.com

Événements côté client ReCaptcha v2

ReCaptcha v2 expose-t-il des événements côté client? Je cherche spécifiquement à identifier quand la réponse Captcha a été retournée une fois que la case est cochée, donc je peux révéler le bouton "Continuer" ci-dessous.

enter image description here

Sans cela, il est possible pour l'utilisateur de cliquer sur la case à cocher puis de cliquer rapidement sur le bouton Envoyer avant que la réponse captcha ne soit de retour.

Je pourrais éventuellement ajouter mon propre gestionnaire d'événements click à la classe recaptcha-checkbox-checkmark et interroger la visibilité de la tique, je me demandais simplement s'il y avait un moyen plus simple de le faire?

$(".recaptcha-checkbox-checkmark").click(function() {
    //...Poll for visibility of tick
});
32
QFDev

Vous pouvez configurer reCAPTCHA pour donner un rappel en cas de validation réussie en utilisant l'attribut data-callback sur la balise g-recaptcha ou via le paramètre 'callback' si vous utilisez un rendu explicite.

Voir https://developers.google.com/recaptcha/docs/display#render_param

Exemple utilisant un rendu explicite:

var myCallback = function(val) { console.log(val); };
grecaptcha.render(
   document.getElementsById('my-recaptcha-placeholder'), 
   {
     callback: myCallback, 
     sitekey: mySiteKey
   });
24
Aaron

Une autre solution consiste à définir data-callback directement sur le g-recaptcha div, comme ceci

<script type="text/javascript">
  var imNotARobot = function() {
    console.info("Button was clicked");
  };
</script>

<div class="g-recaptcha" data-callback="imNotARobot" data-sitekey="key"></div>
31
Oleander