AJAX ile bir kayıt formu var, böylece bir hata oluştuğunda (yani kullanıcı adı zaten kullanımda) Recaptcha görüntüsünü yenilemek istiyorum.
JavaScript kullanarak yeniden yüklemek için ReCaptcha ile uyumlu bir kod arıyorum.
AJAX ile bir kayıt formu var, böylece bir hata oluştuğunda (yani kullanıcı adı zaten kullanımda) Recaptcha görüntüsünü yenilemek istiyorum.
JavaScript kullanarak yeniden yüklemek için ReCaptcha ile uyumlu bir kod arıyorum.
Yanıtlar:
Önemli: reCAPTCHA API'sinin 1.0 sürümü artık desteklenmiyor, lütfen Sürüm 2.0'a yükseltin.
Sen kullanabilirsiniz grecaptcha.reset (); captcha'yı sıfırlamak için.
Kaynak: https://developers.google.com/recaptcha/docs/verify#api-request
ReCaptcha v2 için şunu kullanın:
grecaptcha.reset();
ReCaptcha v1 kullanıyorsanız ( muhtemelen değil ):
Recaptcha.reload();
Bu, üzerinde zaten yüklü bir Recaptcha varsa yapılacaktır window
.
(@ SebiH'nin aşağıdaki yorumuna dayanarak güncellendi.)
grecaptcha.reset();
( dokümantasyonunda )
grecaptcha.reset();
benim tepki uygulamalar için kullanıyorum ve mükemmel çalışıyor
if (window.grecaptcha) grecaptcha.reset();
Sürüm 1 kullanıyorsanız
Recaptcha.reload();
Sürüm 2 kullanıyorsanız
grecaptcha.reset();
grecaptcha.reset(opt_widget_id)
ReCAPTCHA widget'ını sıfırlar. İsteğe bağlı bir pencere öğesi kimliği iletilebilir, aksi takdirde işlev oluşturulan ilk pencere öğesini sıfırlar. (Google'ın web sayfasından)
Bunu dene
<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'ı çağırırsanız, captchadiv yeni bir recaptcha örneğiyle doldurulur.
Veya sadece yenile düğmesine tıklamayı taklit edebilirsiniz
// If recaptcha object exists, refresh it
if (typeof Recaptcha != "undefined") {
jQuery('#recaptcha_reload').click();
}
Recaptcha
ve grecaptcha
her ikisi de benim sayfamda tanımsız. Bu benim için küçük bir değişiklikle çalıştı:if( $("#recaptcha_reload").length > 0 ){ ....
AngularJS kullanıcıları için:
$window.grecaptcha.reset();
ReCaptcha v2'nin yeni sürümü için:
grecaptcha.reset();
yeni recaptcha 2.0 kullanıyorsanız bunu kullanın: arkasındaki kod için:
ScriptManager.RegisterStartupScript(this, this.GetType(), "CaptchaReload", "$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});", true);
basit javascript için
<script>$.getScript(\"https://www.google.com/recaptcha/api.js\", function () {});</script>