2016-09-15 117 views
2

只要用户勾选并验证Google recaptcha,我有兴趣隐藏resultcaptcha消息。只有第一部分(v.length == 0)有效。其他如果不起作用。你可以在这里检查的形式:https://csandreas1.herokuapp.comGoogle recaptcha使用Jquery验证

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

尝试'v.length> 1'作为响应是一个令牌ID长度大于1个 –

+0

没了时,不工作 –

+0

登录应对控制台和实际检查什么包含的内容。 – CBroe

回答

5

上面的代码形式submit事件处理中,这将触发只有当“提交”(SEND)按钮被按下。

要在验证验证码后立即隐藏错误消息,您需要在验证码元素(class="g-recaptcha")上使用data-callback,顾名思义,它提供了一个在验证码成功验证的时候执行的回调。这里是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() 
+0

感谢您的帮助 –