Invisible reCAPTCHA可让您在成功验证后轻松设置回调:
<button class="g-recaptcha" data-sitekey="your_site_key" data-callback='successfulVerification()'>Submit</button>
但是,如果进一步验证的模式已关闭(或者reCAPTCHA无法验证您是否为人类 - 实际上不确定是否会发生这种情况,它似乎没有任何触发回调的选项,也许是只是一直向你展示新的挑战?)
这很重要的原因是我们有一个加载微调器或某种视觉提示来向用户显示我们正在处理提交。如果reCAPTCHA无法自动确定用户确实是人类,则会显示模态 - 现在如果用户成功完成,则表示没问题 - 但如果他/她退出,则加载微调器仍然可见,因为它没有不知道reCAPTCHA失败/用户退出了它。
一种解决方法是仅在 reCAPTCHA成功并且请求开始后显示加载微调器 - 但这对用户来说是一种糟糕的体验,因为在单击按钮和形式“出现”提交 - 让用户可能想知道表格是否实际提交。
有关如何解决此问题的任何想法?谢谢!
答案 0 :(得分:1)
我还没有找到解决方法,但是黑客解决方法是在超时后重新启用提交按钮,这样至少用户如果取消重新接收尝试就无法无限期地锁定。
var timeout = setTimeout(function () { enableSubmit(); }, 3000);
grecaptcha.render(elem, {
...
callback: function (token) {
clearTimeout(timeout);
continueWithSubmission();
}
});
grecaptcha.execute();