Eventos paralelos al cliente de reCAPTCHA v2
¿ reCAPTCHA v2 expone algún evento paralelo del cliente? Estoy buscando específicamente identificar cuándo se ha devuelto la respuesta Captcha una vez que la casilla está marcada, para que pueda revelar el botón "Continuar" a continuación.
Sin esto, es posible que el usuario haga clic en la casilla de verificación y luego haga clic rápidamente en el botón enviar antes de que vuelva la respuesta captcha.
Podría agregar mi propio controlador de eventos de clic a la clase recaptcha-checkbox-checkmark
y sondear la visibilidad de la garrapata, me preguntaba si había una forma más sencilla de hacer esto?
$(".recaptcha-checkbox-checkmark").click(function() {
//...Poll for visibility of tick
});
2 answers
Puede configurar reCAPTCHA para dar una devolución de llamada en la validación exitosa utilizando el atributo data-callback en la etiqueta g-recaptcha o a través del parámetro 'callback' si se utiliza la representación explícita.
Véase https://developers.google.com/recaptcha/docs/display#render_param
Ejemplo usando la representación explícita:
var myCallback = function(val) { console.log(val); };
grecaptcha.render(
document.getElementsById('my-recaptcha-placeholder'),
{
callback: myCallback,
sitekey: mySiteKey
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-29 00:55:43
Otra solución es establecer data-callback
directamente en el div g-recaptcha
, así
<script type="text/javascript">
var imNotARobot = function() {
console.info("Button was clicked");
};
</script>
<div class="g-recaptcha" data-callback="imNotARobot" data-sitekey="key"></div>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-04 02:36:40