200

エラーが発生したとき(つまり、ユーザー名がすでに使用されているとき)にRecaptchaイメージを更新したいので、AJAXのサインアップフォームを持っています。

JavaScriptを使用してリロードするReCaptchaと互換性のあるコードを探しています。

4

8 に答える 8

407

reCaptcha v2の場合は、次を使用します。

grecaptcha.reset();

reCaptcha v1を使用している場合(おそらくそうではありません):

Recaptcha.reload();

これは、にすでにロードされているRecaptchaがある場合に実行されますwindow

(以下の@SebiHのコメントに基づいて更新されました。)

于 2010-08-11T09:55:59.667 に答える
68

バージョン1を使用している場合

Recaptcha.reload();

バージョン2を使用している場合

grecaptcha.reset();
于 2015-04-07T16:00:30.453 に答える
50

重要: reCAPTCHAAPIのバージョン1.0はサポートされなくなりました。バージョン2.0にアップグレードしてください。

grecaptcha.reset();を使用できます。キャプチャをリセットします。

ソース:https ://developers.google.com/recaptcha/docs/display#js_api

于 2016-06-03T06:27:33.140 に答える
12
grecaptcha.reset(opt_widget_id)

reCAPTCHAウィジェットをリセットします。オプションのウィジェットIDを渡すことができます。それ以外の場合、関数は最初に作成されたウィジェットをリセットします。(GoogleのWebページから)

于 2017-01-16T09:00:44.183 に答える
9

または、更新ボタンのクリックをシミュレートすることもできます

// If recaptcha object exists, refresh it
    if (typeof Recaptcha != "undefined") {
      jQuery('#recaptcha_reload').click();
    }
于 2014-11-06T18:51:33.410 に答える
7

これを試して

<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インスタンスが入力されます。

于 2010-07-30T12:27:11.270 に答える
4

AngularJSユーザーの場合:

$window.grecaptcha.reset();
于 2017-09-12T03:12:21.753 に答える
1

新しいrecaptcha2.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>
于 2015-04-24T11:18:55.440 に答える