如何启用/停用Google的reCaptcha小部件?

问题描述:

有没有办法以编程方式启用/禁用Google的reCaptcha小部件?这样做的目的是防止用户过早地点击“我不是机器人”复选框。如何启用/停用Google的reCaptcha小部件?

+0

你不能隐藏元素吗? – thanksd

+0

当然,这是可能的,但如果某种禁用/启用功能不存在,我不会意识到这将是一种方法。我浏览了Google的文档并没有看到任何内容,所以我想知道是否有人知道解决方案。 – reformed

+0

我认为你可以根据某个事件完成的回调来延迟.render方法,比如表单的最后一个元素被填充或者你选择的任何东西。 –

我找到了解决方案,感谢this answer

添加这个CSS:

.disabled-element { 
    opacity: 0.65; 
    pointer-events: none; 
} 

disabled-element类添加到包含的ReCaptcha元素div

<script> 
    var onloadCallback = function() { 
    alert("grecaptcha is ready!"); 
    }; 
</script> 

<div class="disabled-element" id="captcha"></div> 
... 
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script> 

最后,当你准备好启用验证码元,除去class:

$("#captcha").removeClass("disabled-element");