2015-07-10 150 views
3

我想使用ReCaptcha在页面上加载一些额外的数据。我希望在输入ReCaptcha时自动提交表单。这样我就不需要额外的提交按钮。问题是,recaptcha在iframe中加载它的内容,所以它有点困难。ReCaptcha:如何在验证码发送时自动提交表单

目前,我有这样的形式:

<form action="javascript:getInfo(grecaptcha.getResponse(widget1));" > 
     <div id="captcha"></div> 
     <br> 
     <input type="submit" value="Submit"> 
</form> 

如何得到的ReCaptcha类似的事件监听器提交,其提交的外形?

+0

您使用的是什么版本的recaptcha? – colecmc

+0

最后一个。 2.0 –

回答

5

这听起来像一个有趣的技术。它会减少用户的点击和击键。这里是你如何做到这一点,通过听取成功的验证码答复,你将能够跟进所需的行动。这里是一个例子和一些文档。 https://developers.google.com/recaptcha/docs/display#example

var RC2KEY = 'sitekey'; 
 

 
function reCaptchaVerify(response) { 
 
    if (response === document.querySelector('.g-recaptcha-response').value) { 
 
    document.forms['form-name'].submit(); 
 
    } 
 
} 
 

 
function reCaptchaExpired() { 
 
    /* do something when it expires */ 
 
} 
 

 
function reCaptchaCallback() { 
 
    grecaptcha.render('id', { 
 
    'sitekey': RC2KEY, 
 
    'callback': reCaptchaVerify, 
 
    'expired-callback': reCaptchaExpired 
 
    }); 
 
}
<script src='https://www.google.com/recaptcha/api.js?onload=reCaptchaCallback&render=explicit'></script>

+0

谢谢!那正是我所需要的。 –

+0

太棒了!我很高兴为你工作。 – colecmc

+1

代码段不再有效。你能否更新一下,我现在正在磕磕绊绊地解决这个问题。 – thesecretmaster

2

使用#,而不是?

?用于开始查询字符串和意志惹method=GET型反应。 #是锚符号,将工作。