Неправильно обрабатывается Ajax форма, как исправить ошибку?

Всем привет! Нужна помощь. Есть обработчик формы JS:

$(document).ready(function () {
    $("form").submit(function () {
        // Получение ID формы
        var formID = $(this).attr('id');
        // Добавление решётки к имени ID
        var formNm = $('#' + formID);
        var message = $(formNm).find(".msgs"); // Ищет класс .msgs в текущей форме  и записываем в переменную
        var formTitle = $(formNm).find(".formTitle"); // Ищет класс .formtitle в текущей форме и записываем в переменную
        $.ajax({
            type: "POST",
            url: '/assets/modalform/mail.php',
           // url: '/mail.php',
            data: formNm.serialize(),
            success: function (data) {
                // Вывод сообщения об успешной отправке
                message.html(data);
                formTitle.css("display","none");
                setTimeout(function(){
                    //$(formNm).css("display","block");
                    $('.formTitle').css("display","block");
                    $('.msgs').html('');
                    $('input').not(':input[type=submit], :input[type=hidden]').val('');
                    $('textarea').not(':input[type=submit], :input[type=hidden]').val('');
                }, 9000);
                // $('.remodal-close').click();
            },
            error: function (jqXHR, text, error) {
                // Вывод сообщения об ошибке отправки
                message.html(error);
                formTitle.css("display","none");
                // $(formNm).css("display","none");
                setTimeout(function(){
                    //$(formNm).css("display","block");
                    $('.formTitle').css("display","block");
                    $('.msgs').html('');

                }, 3000);
            }
        });
        return false;
    });
    //для стилей формы
    var $input = $('.form-reviews > input');
    $input.blur(function (e) {
        $(this).toggleClass('filled', !!$(this).val());
    });
    $(".linkButton").click(function() {
        $( "input[name*='formInfo']" ).val($(this).attr( "title" ));
    });
});


Проблема в том, что если форма не правильно заполнена, то очищаются все поля формы, хотя по идее поля должны очищаться только в случае успешной отправки формы, что не так?

Как сделать так, чтобы если какое-то из полей заполнено не правильно, его подсвечивать, чтобы пользователь понимал где ошибка?

Рад любой помощи
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 1
success/error колбэки - они про сам аякс запрос, а не про правильность заполнения формы.

у тебя при любом успешном (т.е. который дошел до сервера и вернул какой-то ответ) запросе будет очищаться форма.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
29 нояб. 2024, в 10:38
5000 руб./за проект
29 нояб. 2024, в 10:27
100000 руб./за проект
29 нояб. 2024, в 09:43
100000 руб./за проект