How can I validate google reCAPTCHA v2 using javascript/jQuery?
This Client side verification of reCaptcha
- the following worked for me :
if reCaptcha is not validated on client side grecaptcha.getResponse();
returns null
, else is returns a value other than null
.
Javascript Code:
var response = grecaptcha.getResponse();if(response.length == 0) //reCaptcha not verifiedelse //reCaptch verified
Use this to validate google captcha with simple javascript.
This code at the html body:
<div class="g-recaptcha" id="rcaptcha" style="margin-left: 90px;" data-sitekey="my_key"></div><span id="captcha" style="margin-left:100px;color:red" />
This code put at head section on call get_action(this) method form button:
function get_action(form) { var v = grecaptcha.getResponse(); if(v.length == 0) { document.getElementById('captcha').innerHTML="You can't leave Captcha Code empty"; return false; } else { document.getElementById('captcha').innerHTML="Captcha completed"; return true; }}
If you render the Recaptcha on a callback
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
using an empty DIV as a placeholder
<div id='html_element'></div>
then you can specify an optional function call on a successful CAPTCHA response
var onloadCallback = function() { grecaptcha.render('html_element', { 'sitekey' : 'your_site_key', 'callback' : correctCaptcha }); };
The recaptcha response will then be sent to the 'correctCaptcha' function.
var correctCaptcha = function(response) { alert(response);};
All of this was from the Google API notes :
I'm a bit unsure why you would want to do this. Normally you would send the g-recaptcha-response field along with your Private key to safely validate server-side. Unless you wanted to disable the submit button until the recaptcha was sucessful or such - in which case the above should work.
Hope this helps.
Paul