Google 使用 Jquery 进行重新验证

Google recaptcha validation with Jquery

我有兴趣在用户勾选并验证 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}

以上代码位于表单 submit 事件处理程序中,只有在单击 "submit"(发送)按钮时才会触发。

要在验证码验证后立即隐藏错误消息,您需要在验证码元素 (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()