I've added a Re captcha v2 into my site and I want to call a function after it's successfully solved,
so far my code looks like this:
<body>
<div style='visibility: hidden;position:absolute;' class="g-recaptcha" data-sitekey="6Lf2yr4aAAAAAPt4qOYdNAJPAB53lCkcDn">
</div>
<button id='submit' onclick="show_captcha()">Submit data</button>
<div id="stat"></div>
<script>
function show_captcha() {
var btn=document.querySelector('#submit');
var cap=document.querySelector('.g-recaptcha');
btn.style.visibility='hidden';
btn.style.position='absolute';
cap.style.visibility='visible';
cap.style.position='relative';
}
document.querySelector('.g-recaptcha').addEventListener('change', (event) => {
console.log('here');
var cap=document.querySelector('.g-recaptcha');
data=['xyz',document.querySelector('#g-recaptcha-response').value.toString()];
if(cap.value=='')
return;
//function after captcha is solved goes here
});
</script>
</body>
the change
event listener isn't working, so how can I achieve what I want?
Try to configure reCAPTCHA with a callback on successful validation. Have a look at ReCaptcha v2 client side events