Показать сообщение отдельно
  #1 (permalink)  
Старый 26.02.2018, 20:40
Новичок на форуме
Отправить личное сообщение для Berd Посмотреть профиль Найти все сообщения от Berd
 
Регистрация: 26.02.2018
Сообщений: 1

Исчезает Recaptcha при повторном открытии формы.
Пожалуйста помогите решить проблему.
Есть форма обратной связи вида:
<form action="javascript:void(null);" onsubmit="call2()" method="post" id="formmessage2">
.....
.....
<div class="text-danger" id="recaptchaError"></div>
<div class="g-recaptcha" data-sitekey="XXXXXXXXXXXXX"></div>
<button class="button-send">Отправить сообщение</button>
</form>


Есть скрипт:
<script type="text/javascript" language="javascript">

function call2 () {
    var msg = $('#formmessage2').serialize();
    var formValid = true;
    var captcha = grecaptcha.getResponse();
    if (!captcha.length) {
      $('#recaptchaError').text('* Вы не прошли проверку "Я не робот"');
    } else {
      $('#recaptchaError').text('');
    }

    //отправляем форму
    if ((formValid) && (captcha.length)) {
                $.ajax({
                    type: 'POST',
                    url: 'message.php',
                    data: msg,
                    success: function (data) {
                        $('#results').html(data);
                        $('.modal-wrapper').removeClass('visible');
                        $('.modal-closed').removeClass('visible');
                        jQuery('#formmessage2')[0].reset();
                        grecaptcha.reset();

                    },
                    error: function (xhr, str) {
                        alert('Возникла ошибка: ' + xhr.responseCode);
                    }
                });
    }
    
  }
    </script>


При нажатии на кнопку "Связаться" открывается модальное окно, пользователь заполняет данные проходит проверку капчей и отправляет сообщение. При таком сценарии все работает.
Но если пользователь откроет модальное окно, затем закроет и откроет повторно через какое то время recaptcha не будет отображенна и при попытке отправить сообщение будет отображена строчка "Вы не прошли проверку "Я не робот". По каким то причинам капча не хочет подгружаться при повторном открытии модального окна (остальные поля грузятся нормально) помогает только очистка кеша (ctrl + F5). Но для клиентов это не выход. Как можно решить такую проблему?
Ответить с цитированием