За последние 24 часа нас посетили 17583 программиста и 1677 роботов. Сейчас ищут 1929 программистов ...

Валидация recaptcha на ajax

Тема в разделе "JavaScript и AJAX", создана пользователем Антон23233, 11 сен 2017.

Метки:
  1. Антон23233

    Антон23233 Новичок

    С нами с:
    11 сен 2017
    Сообщения:
    2
    Симпатии:
    0
    Добрый день.
    Вот код отправки моей формы через ajax
    Код (Javascript):
    1. $(".form-call").on("submit", function() { //устанавливаем событие отправки для формы с id=form
    2.             var form_data = $(this).serialize(); //собераем все данные из формы
    3.             var captcha = grecaptcha.getResponse();
    4.             $.ajax({
    5.             type: "POST", //Метод отправки
    6.             url: "send.php", //путь до php фаила отправителя
    7.             data: form_data,
    8.             success: function() {
    9.                     if (!captcha.length) {
    10.                       // Выводим сообщение об ошибке
    11.                       alert("Вы не ввели капчу");
    12.                     } else {
    13.                       alert("Сообщение отправлено");
    14.                     }
    15.                 }
    16.             });
    17.     });
    Ошибка в том, что скрипт не заходит в условие else. То есть Если капча пустая - он выводит алерт с сообщением Вы не ввели капчу - если не пустая, он просто отправляет форму, а алерт с Сообщение отправлено - не выводит
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    success вызывается уже после запроса. Надо было до $.ajax это писать
     
    denis01 нравится это.
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.798
    Симпатии:
    1.331
    Адрес:
    Лень
    success:function(captcha){
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.798
    Симпатии:
    1.331
    Адрес:
    Лень
  6. Антон23233

    Антон23233 Новичок

    С нами с:
    11 сен 2017
    Сообщения:
    2
    Симпатии:
    0
    Сделал так
    Код (Text):
    1. $(".form-call").on("submit", function() { //устанавливаем событие отправки для формы с id=form
    2.             var form_data = $(this).serialize(); //собераем все данные из формы
    3.             var captcha = grecaptcha.getResponse();
    4.             if (!captcha.length) {
    5.                         // Выводим сообщение об ошибке
    6.             alert("Robot!");
    7.             }else{
    8.             $.ajax({
    9.             type: "POST", //Метод отправки
    10.             url: "send.php", //путь до php фаила отправителя
    11.             data: form_data,
    12.             success: function() {
    13.                     alert("Ваше сообщение отправлено!");
    14.                 }
    15.             });
    16.         }  
    17.     });
    Все равно успешный alert не выдает
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    на вид всё верно, может в урле ошибка или ещё где вне этого кода.

    смотри в браузере лог запросов: что ушло, что ответили.