Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Исчезает Recaptcha при повторном открытии формы. (https://javascript.ru/forum/dom-window/72800-ischezaet-recaptcha-pri-povtornom-otkrytii-formy.html)

Berd 26.02.2018 20:40

Исчезает 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). Но для клиентов это не выход. Как можно решить такую проблему?

Nexus 27.02.2018 18:04

Разберитесь что с капчей происходит и уже исходя из этого действуйте.
И атрибут "action" формы у вас странный, мягко говоря.


Часовой пояс GMT +3, время: 16:38.