Метод grecaptcha.getResponse()
принимает необязательный параметр "widget_id", и по умолчанию используется первый созданный виджет, если он не указан. Widget_id возвращается из метода grecaptcha.render()
для каждого созданного виджета, он не связан с атрибутом id
контейнера reCAPTCHA !!
Каждый reCAPTCHA имеет свои собственные данные ответа.
Вы должны присвоить reCAPTCHA div идентификатор и передать его методу getResponse
:
, например
<div id="reCaptchaLogin"
class="g-recaptcha required-entry"
data-sitekey="<?php echo $this->helper('recaptcha')->getKey(); ?>"
data-theme="<?php echo($this->helper('recaptcha')->getTheme()); ?>"
style="transform:scale(0.82);-webkit-transform:scale(0.82);transform-origin:0 0;-webkit-transform-origin:0 0;">
</div>
<script type="text/javascript">
var CaptchaCallback = function() {
jQuery('.g-recaptcha').each(function(index, el) {
grecaptcha.render(el, {
'sitekey' : jQuery(el).attr('data-sitekey')
,'theme' : jQuery(el).attr('data-theme')
,'size' : jQuery(el).attr('data-size')
,'tabindex' : jQuery(el).attr('data-tabindex')
,'callback' : jQuery(el).attr('data-callback')
,'expired-callback' : jQuery(el).attr('data-expired-callback')
,'error-callback' : jQuery(el).attr('data-error-callback')
});
});
};
</script>
<script src="https://www.google.com/recaptcha/api.js?onload=CaptchaCallback&render=explicit" async defer></script>
Ответ доступа:
var reCaptchaResponse = grecaptcha.getResponse(0);
или
var reCaptchaResponse = grecaptcha.getResponse(1);