代码之家  ›  专栏  ›  技术社区  ›  ahmet alp balkan

如何使用JavaScript重新加载ReCaptcha?

  •  155
  • ahmet alp balkan  · 技术社区  · 14 年前

    我有一个带有AJAX的注册表单,所以每当出现错误时(即用户名已经在使用中),我都希望刷新Recaptcha图像。

    9 回复  |  直到 14 年前
        1
  •  43
  •   Tes3awy    3 年前

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

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

    资料来源: https://developers.google.com/recaptcha/docs/display#js_api

        2
  •  387
  •   ahmet alp balkan    5 年前

    对于reCaptcha v2,请使用:

    grecaptcha.reset();
    

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

    Recaptcha.reload();
    

    window .

    (根据@SebiH的评论更新)

        3
  •  63
  •   Dasun    9 年前

    Recaptcha.reload();
    

    如果您使用的是版本2

    grecaptcha.reset();
    
        4
  •  10
  •   Kutalia    8 年前
    grecaptcha.reset(opt_widget_id)
    

    (from Google's web page)

        5
  •  8
  •   AlxVallejo    10 年前

    或者你可以模拟一下点击刷新按钮

    // If recaptcha object exists, refresh it
        if (typeof Recaptcha != "undefined") {
          jQuery('#recaptcha_reload').click();
        }
    
        6
  •  7
  •   Tim    14 年前

    试试这个

    <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,captchadiv将填充一个新的recaptcha实例。

        7
  •  4
  •   Marcelo C.    7 年前

    对于AngularJS用户:

    $window.grecaptcha.reset();
    
        8
  •  1
  •   Sara Khan    9 年前

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