2
我有很多reCAPTCHA的誰動態呈現,有時有2個有時50取決於頁面。 我已經做了渲染這個:谷歌reCAPTCHA重置函數調用呈現多個驗證碼
<script src="https://www.google.com/recaptcha/api.js?onload=CaptchaCallback&render=explicit" async defer></script>
var CaptchaCallback = function(){
$('.g-recaptcha').each(function(index, el) {
grecaptcha.render(el, {'sitekey' : 'myKey'});
});
};
而且放置在此,我要顯示驗證碼:
<div class="g-recaptcha" data-sitekey="myKey"></div>
我有Ajax調用,即提交表單數據process.php,如果表單數據沒有通過驗證返回的自定義錯誤
$.ajax({
type : 'POST',
url : 'process.php',
data : $(this).serialize(),
dataType : 'json'
})
.done(function(data) {
if (! data.success) { ...
它按預期工作,但現在我想顯示消息的用戶作爲驗證的一部分,如果他忘了要解決驗證碼。
隨着
var response = grecaptcha.getResponse();
if(response.length == 0){
$('.result').append('Captcha incorrect, please click I am not robot');
}
和重置驗證碼添加此波紋管
if (! data.success) {
grecaptcha.reset();
這是什麼做的是:驗證碼復位如果用戶沒有完成所有形式的有效。
這一切只適用於第一次出現reCAPTCHA。 我需要它以某種方式告訴它只重置當前正在使用的驗證碼。
我最好的猜測是與
var form = $(this); //get current form
grecaptcha.reset(form);
嘗試它不會工作,因爲我需要件ID,並沒有形成。 你能幫我嗎?