我有一个带有 AJAX 的注册表单,因此我想在发生错误时刷新 Recaptcha 图像(即用户名已在使用中)。
我正在寻找与 ReCaptcha 兼容的代码以使用 JavaScript 重新加载它。
我有一个带有 AJAX 的注册表单,因此我想在发生错误时刷新 Recaptcha 图像(即用户名已在使用中)。
我正在寻找与 ReCaptcha 兼容的代码以使用 JavaScript 重新加载它。
对于 reCaptcha v2,使用:
grecaptcha.reset();
如果您使用的是 reCaptcha v1(可能不是):
Recaptcha.reload();
如果window
.
(根据@SebiH 下面的评论更新。)
如果您使用的是版本 1
Recaptcha.reload();
如果您使用的是版本 2
grecaptcha.reset();
重要提示:不再支持 reCAPTCHA API 1.0 版。请升级到 2.0 版。
您可以使用grecaptcha.reset(); 重置验证码。
来源:https ://developers.google.com/recaptcha/docs/display#js_api
grecaptcha.reset(opt_widget_id)
重置 reCAPTCHA 小部件。可以传递一个可选的小部件 ID,否则该函数将重置创建的第一个小部件。(来自谷歌的网页)
或者您可以模拟单击刷新按钮
// If recaptcha object exists, refresh it
if (typeof Recaptcha != "undefined") {
jQuery('#recaptcha_reload').click();
}
尝试这个
<script type="text/javascript" src="//www.google.com/recaptcha/api/js/recaptcha_ajax.js"></script>
<script type="text/javascript">
function showRecaptcha() {
Recaptcha.create("YOURPUBLICKEY", 'captchadiv', {
theme: 'red',
callback: Recaptcha.focus_response_field
});
}
</script>
<div id="captchadiv"></div>
如果您调用 showRecaptcha,验证码将填充一个新的 recaptcha 实例。
对于 AngularJS 用户:
$window.grecaptcha.reset();
如果您使用的是新的 recaptcha 2.0,请使用以下代码:
ScriptManager.RegisterStartupScript(this, this.GetType(), "CaptchaReload", "$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});", true);
对于简单的 javascript
<script>$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});</script>