Does ReCaptcha v2 expose any client side events? I am looking specifically to identify when the Captcha response has been returned once the box is ticked, so I can reveal the "Continue" button below.
Without this it is possible for the user to click the checkbox then quickly click the submit button before the captcha response is back.
I could possible add my own click event handler to the class recaptcha-checkbox-checkmark
and poll the visiblity of the tick, I just wondered if there was a simpler way to do this?
$(".recaptcha-checkbox-checkmark").click(function() {
//...Poll for visibility of tick
});
You can configure reCAPTCHA to give a callback on successful validation using the data-callback attribute on the g-recaptcha tag or via the 'callback' parameter if using explicit rendering.
See
https://developers.google.com/recaptcha/docs/display#render_param
Example using explicit rendering:
var myCallback = function(val) { console.log(val); };
grecaptcha.render(
document.getElementsById('my-recaptcha-placeholder'),
{
callback: myCallback,
sitekey: mySiteKey
});
Another solution is to set data-callback
directly on the g-recaptcha
div, like this
<script type="text/javascript">
var imNotARobot = function() {
console.info("Button was clicked");
};
</script>
<div class="g-recaptcha" data-callback="imNotARobot" data-sitekey="key"></div>