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
});
In short, yes they can. While reCAPTCHA v2 and v3 can help limit simple bot traffic, both versions come with several problems: User experience suffers, as human users hate the image/audio recognition challenges.
Can I run reCAPTCHA v2 and v3 on the same page? To do this, load the v3 site key as documented, and then explicitly render v2 using grecaptcha.render.
reCAPTCHA v2 is a CAPTCHA service implementation from Google. It provides website protection against automated bots and spam by adding an additional widget to web forms which verifies that the user accessing the page is a real human being.
Like the invisible reCAPTCHA, with reCAPTCHA v3, all the user sees is the reCAPTCHA badge. However, unlike the reCAPTCHA v2, v3 does not prompt the user with a reCAPTCHA challenge when they are deemed suspicious.
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>
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 });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With