我有兴趣在用户勾选并验证google recaptcha后立即隐藏resultcaptcha消息。只有第一部分(v.length == 0)有效。否则如果不起作用。您可以在此处查看表单:https://csandreas1.herokuapp.com
if(grecaptcha.getResponse() == 0) // this works
{
$('#resultcaptcha').show();
$('#resultcaptcha').html('<i class="fa fa-exclamation-circle w3-text-red fa-3x" aria-hidden="true"></i> <span class="w3-text-white w3-bold" style="font-size:16px"> Please verify that you are a human</span>');
}
else if(grecaptcha.getResponse() == 1)//this doesn't work
{
$('#resultcaptcha').hide();
$('#resultcaptcha').html('');
}
else{//submit the form}
答案 0 :(得分:6)
上面的代码位于submit
形式的事件处理程序中,只有当&#34;提交&#34;单击(发送)按钮。
要在验证验证码后立即隐藏错误消息,您需要使用验证码元素data-callback
上的class="g-recaptcha"
,顾名思义提供要执行的回调验证验证码成功验证的那一刻。这是documentation link。
这里的代码应该是什么样子。 (我无法使用data-callback
属性验证代码,但它确实适用于grecaptcha.render()
方法)
<script>
function captcha_callback(response) {
if (response.length > 1) {
$('#resultcaptcha').html('');
}
}
</script>
<div class="g-recaptcha" data-sitekey="site_key" data-callback="captcha_callback"><div>
此外,如果您想再次重置验证码,请在成功提交后清除表单,您可以使用:(请参阅Documentation)
grecaptcha.reset()