ReCaptcha v2 客户端事件

ReCaptcha v2 client side events

ReCaptcha v2 是否公开任何客户端事件?我特别希望在勾选该框后确定何时返回验证码响应,因此我可以在下面显示 "Continue" 按钮。

如果没有这个,用户可能会单击复选框,然后在验证码响应返回之前快速单击提交按钮。

我可以将我自己的点击事件处理程序添加到 class recaptcha-checkbox-checkmark 并轮询勾选的可见性,我只是想知道是否有更简单的方法来做到这一点?

$(".recaptcha-checkbox-checkmark").click(function() {
    //...Poll for visibility of tick
});

您可以使用 g-recaptcha 标签上的数据回调属性或通过 'callback' 参数(如果使用显式呈现)将 reCAPTCHA 配置为在成功验证时提供回调。

https://developers.google.com/recaptcha/docs/display#render_param

使用显式渲染的示例:

var myCallback = function(val) { console.log(val); };
grecaptcha.render(
   document.getElementsById('my-recaptcha-placeholder'), 
   {
     callback: myCallback, 
     sitekey: mySiteKey
   });

另一种解决方法是直接在g-recaptchadiv上设置data-callback,像这样

<script type="text/javascript">
  var imNotARobot = function() {
    console.info("Button was clicked");
  };
</script>

<div class="g-recaptcha" data-callback="imNotARobot" data-sitekey="key"></div>