Суть проблемы в том что я формирую reCAPTCHA средством ajax в диалоговом окне, и работает только один раз, если закрыть диалоговое окно и открыть еще раз то обработчик вызываться не будет data-callback="
onSubmit"
А теперь как все устроено:
1. В хедере
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
2. При получение ajax запросом содержимое модального окна ставлю для каптчи
<div id="g-recaptcha"></div>
3. При формирование модального окна вызываю функцию
var captcha = null;
function createRecaptcha() {
if(captcha === null) {
captcha = grecaptcha.render("g-recaptcha", {
sitekey: "6Ld-xToUAAAAAAda6yqAaKyI3VLa_hFIBE9KBtxB",
callback: "onSubmit",
size: "invisible"});
} else {
grecaptcha.reset(captcha);
}
}
5. При клике на кнопку submit перехватываю клик и вызываю функцию
grecaptcha.execute(captcha);
4. Должно вызываются onSubmit(token) для дальнейшей работы.