Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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). Но для клиентов это не выход. Как можно решить такую проблему?
Ответить с цитированием
  #2 (permalink)  
Старый 27.02.2018, 18:04
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить к body класс при открытии модального окна maxg5 jQuery 8 20.02.2018 19:55
Скрывать и делать необязательной часть формы при выборе вариантов Colorado Элементы интерфейса 6 31.07.2017 11:10
Как отключить звук при открытии окна SnezhanaLast Элементы интерфейса 15 15.04.2016 08:20
Отправка формы при каждом обновлении страницы Ingener Общие вопросы Javascript 0 25.03.2016 19:26
Вывод данных единожды, при открытии окна? Ggorsh Events/DOM/Window 1 28.04.2009 01:04