web-dev-qa-db-ja.com

JavaScriptを使用してReCaptchaをリロードする方法は?

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

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

161
AhmetB - Google

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

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

ソース: https://developers.google.com/recaptcha/docs/verify#api-request

12
abhiagNitk

ReCaptcha v1を使用している場合(おそらくない):

Recaptcha.reload();

ReCaptcha v2の新しいバージョンの場合:

grecaptcha.reset();

windowに既にロードされたRecaptchaがある場合。

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

340
AhmetB - Google

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

Recaptcha.reload();

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

grecaptcha.reset();
59
Dasun

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

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

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

7
Kutalia

これを試して

<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を呼び出すと、captcha divに新しいrecaptchaインスタンスが入力されます。

5
Tim

AngularJSユーザーの場合:

$window.grecaptcha.reset();
3
Marcelo C.

reCaptcha v2の新しいバージョンの場合:

grecaptcha.reset();
2

新しい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>
0
Sara Khan

ReCAPTCHA APIのバージョン1.0を使用している場合は、バージョン2.0へのアップグレード(バージョン1.0はサポートされなくなりました)

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

0
s sharif