Как перезагрузить ReCaptcha с помощью JavaScript?

У меня есть форма регистрации с AJAX, поэтому я хочу обновить образ Recaptcha в любое время, когда произошла ошибка (то есть имя пользователя уже используется).

Я ищу код, совместимый с ReCaptcha, чтобы перезагрузить его с помощью JavaScript.

Ответ 1

Важно: версия 1.0 API reCAPTCHA больше не поддерживается, обновите версию до версии 2.0.

Вы можете использовать grecaptcha.reset(); до reset captcha.

Источник: https://developers.google.com/recaptcha/docs/verify#api-request

Ответ 2

Для reCaptcha v2 используйте:

grecaptcha.reset();

Если вы используете reCaptcha v1 (, вероятно, нет):

Recaptcha.reload();

Это будет делать, если в window уже есть загруженная Recaptcha.

(Обновлено на основе комментария @SebiH ниже.)

Ответ 3

Если вы используете версию 1

Recaptcha.reload();

Если вы используете версию 2

grecaptcha.reset();

Ответ 4

Или вы можете просто имитировать щелчок на кнопке обновления

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

Ответ 5

grecaptcha.reset(opt_widget_id)

Сбрасывает виджет reCAPTCHA. Может быть передан дополнительный идентификатор виджета, иначе функция сбрасывает первый созданный виджет. (с веб-страницы Google)

Ответ 6

Попробуйте это

<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

Для пользователей AngularJS:

$window.grecaptcha.reset();

Ответ 8

Для новой версии reCaptcha v2 используйте:

grecaptcha.reset();

Ответ 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>

Ответ 10

Если вы используете API reCAPTCHA версии 1.0, обновите до версии 2.0 (версия 1.0 больше не поддерживается)

Используйте grecaptcha.reset(); для сброса капчи.