У меня есть форма регистрации с AJAX, поэтому я хочу обновить образ Recaptcha в любое время, когда произошла ошибка (то есть имя пользователя уже используется).
Я ищу код, совместимый с ReCaptcha, чтобы перезагрузить его с помощью JavaScript.
У меня есть форма регистрации с AJAX, поэтому я хочу обновить образ Recaptcha в любое время, когда произошла ошибка (то есть имя пользователя уже используется).
Я ищу код, совместимый с ReCaptcha, чтобы перезагрузить его с помощью JavaScript.
Важно: версия 1.0 API reCAPTCHA больше не поддерживается, обновите версию до версии 2.0.
Вы можете использовать grecaptcha.reset(); до reset captcha.
Источник: https://developers.google.com/recaptcha/docs/verify#api-request
Для reCaptcha v2 используйте:
grecaptcha.reset();
Если вы используете reCaptcha v1 (, вероятно, нет):
Recaptcha.reload();
Это будет делать, если в window
уже есть загруженная Recaptcha.
(Обновлено на основе комментария @SebiH ниже.)
Если вы используете версию 1
Recaptcha.reload();
Если вы используете версию 2
grecaptcha.reset();
Или вы можете просто имитировать щелчок на кнопке обновления
// If recaptcha object exists, refresh it
if (typeof Recaptcha != "undefined") {
jQuery('#recaptcha_reload').click();
}
grecaptcha.reset(opt_widget_id)
Сбрасывает виджет reCAPTCHA. Может быть передан дополнительный идентификатор виджета, иначе функция сбрасывает первый созданный виджет. (с веб-страницы Google)
Попробуйте это
<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.
Для пользователей AngularJS:
$window.grecaptcha.reset();
Для новой версии reCaptcha v2 используйте:
grecaptcha.reset();
Если вы используете новый 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>
Если вы используете API reCAPTCHA версии 1.0, обновите до версии 2.0 (версия 1.0 больше не поддерживается)
Используйте grecaptcha.reset();
для сброса капчи.