Несколько reCAPTCHA на одну страницу
Часто получается, на одной странице может быть несколько форм для взаймодествия с пользователем, но у гугл рекаптчи механизм работы рассчитан на одну рекапчу на страницу. Чтобы это поправить пришлось изобретать велосипед. Итак первое что мы делаем создаем для каждой формы свой блок с уникальным ID и вставляем его в форму
<div id='form1'></div>
Второе мы должны вставить код с выполнением рекапчи
<script>
var onloadCallback = function() {
mysitekey = 'your_site_key';
grecaptcha.render('form1', {
'sitekey' : mysitekey
});
grecaptcha.render('form2', {
'sitekey' : mysitekey,
'theme' : 'dark', //default - light
'type' : 'audio', //default - image
'size' : 'compact', //default - normal
'tabindex' : 1, //default - 0
'callback' : , //function on success
'expired-callback' : //function when response expires
});
};
</script>
Не забываем поменять mysitekey на код который вы должны были поставить в форму до этого
Тут указаны параметры для двух форм. Одна без параметров, другая с ними.
И третий шаг вместо подключения кода рекапчи api.js вставляете
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>