我有一个注册表,上面有新的google recaptcha小部件。当用户提交信息时,我们使用javascript检查验证,并将问题返回到页面(例如:“请使用有效的电话号码”)。然而,由于页面不会重新加载,当用户输入正确的信息并再次提交时(无需再次执行recaptcha ),...the recaptcha将不再有效,并且在不重新加载页面的情况下无法提交。
有没有一个很好的解决方案?我可以以某种方式重新加载小部件吗?我尝试过grecaptcha.render,但它并没有真正起到什么作用。
编辑:
当我再次尝试呈现小部件时,它显示“占位符元素必须为空”。
我尝试清空似乎可以工作的元素($('.g-recaptcha').empty();),然后进行渲染,但仍然抛出相同的错误。
发布于 2014-12-30 18:38:51
您要查找的方法是grecaptcha.reset()
但是,为了让这个函数工作,您必须像下面这样显式地呈现reCaptacha:<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>
发布于 2015-08-11 15:59:55
我个人将元素html内容重置为
$('#captcha').html('');
在此之后,我使用以下命令重新加载了recaptcha
$.getScript("https://www.google.com/recaptcha/api.js");
将recaptcha内容加载到
<div id="captcha" class="g-recaptcha" data-sitekey="yourSitePublicKey"></div>
发布于 2016-06-19 05:02:35
我能够做到这一点,只需使用:
grecaptcha.reset();
https://stackoverflow.com/questions/27574733
复制相似问题