如何使用JavaScript重新加载ReCaptcha?

时间:2010-07-30 12:21:16

标签: javascript recaptcha

我有一个使用AJAX的注册表单,因此我想在发生错误时刷新Recaptcha图像(即用户名已经在使用中)。

我正在寻找与ReCaptcha兼容的代码,以便使用JavaScript重新加载它。

10 个答案:

答案 0 :(得分:339)

如果您使用的是reCaptcha v1(可能不是):

Recaptcha.reload();

对于新版本的reCaptcha v2,请使用:

grecaptcha.reset();

如果window上已经加载了Recaptcha。

(根据@ SebiH的评论更新。)

答案 1 :(得分:59)

如果您使用的是版本1

Recaptcha.reload();

如果您使用的是版本2

grecaptcha.reset();

答案 2 :(得分:12)

重要提示:不再支持reCAPTCHA API 1.0版,请升级到2.0版。

您可以使用 grecaptcha.reset(); 重置验证码。

来源:https://developers.google.com/recaptcha/docs/verify#api-request

答案 3 :(得分:7)

或者您可以模拟点击刷新按钮

// If recaptcha object exists, refresh it
    if (typeof Recaptcha != "undefined") {
      jQuery('#recaptcha_reload').click();
    }

答案 4 :(得分:7)

grecaptcha.reset(opt_widget_id)

重置reCAPTCHA小部件。可以传递可选的小部件ID,否则该函数将重置创建的第一个小部件。 (from Google's web page)

答案 5 :(得分:5)

试试这个

<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>

如果你打电话给show Recaptcha,验证码div将填充一个新的recaptcha实例。

答案 6 :(得分:3)

对于AngularJS用户:

$window.grecaptcha.reset();

答案 7 :(得分:2)

对于新版本的 reCaptcha v2 ,请使用:

grecaptcha.reset();

答案 8 :(得分:1)

如果您使用的是reCAPTCHA API的1.0版,请升级到2.0版(不再支持1.0版)

使用grecaptcha.reset();重设验证码。

答案 9 :(得分:0)

如果你使用新的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>