エラーが発生したとき(つまり、ユーザー名が既に使用されているとき)にRecaptchaイメージを更新したいので、AJAXのサインアップフォームがあります。
JavaScriptを使用して再読み込みするReCaptchaと互換性のあるコードを探しています。
エラーが発生したとき(つまり、ユーザー名が既に使用されているとき)にRecaptchaイメージを更新したいので、AJAXのサインアップフォームがあります。
JavaScriptを使用して再読み込みするReCaptchaと互換性のあるコードを探しています。
回答:
重要:reCAPTCHA APIのバージョン1.0はサポートされなくなりました。バージョン2.0にアップグレードしてください。
grecaptcha.reset();を使用できます。キャプチャをリセットします。
ソース:https : //developers.google.com/recaptcha/docs/verify#api-request
reCaptcha v2の場合、以下を使用します。
grecaptcha.reset();
reCaptcha v1を使用している場合(おそらく使用しない場合):
Recaptcha.reload();
これは、にすでに読み込まれているRecaptchaがある場合に行われますwindow
。
(下記の@SebiHのコメントに基づいて更新。)
grecaptcha.reset();
自分の反応アプリにこれを使用しており、完全に機能します
if (window.grecaptcha) grecaptcha.reset();
バージョン1を使用している場合
Recaptcha.reload();
バージョン2を使用している場合
grecaptcha.reset();
grecaptcha.reset(opt_widget_id)
reCAPTCHAウィジェットをリセットします。オプションのウィジェットIDを渡すことができます。渡さない場合、関数は作成された最初のウィジェットをリセットします。(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インスタンスが入力されます。
または、更新ボタンのクリックをシミュレートすることもできます
// If recaptcha object exists, refresh it
if (typeof Recaptcha != "undefined") {
jQuery('#recaptcha_reload').click();
}
Recaptcha
そしてgrecaptcha
私のページではどちらも未定義です。これは、わずかな変更で、私の仕事:if( $("#recaptcha_reload").length > 0 ){ ....
新しい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>