Задать вопрос
@Jony1337

Как вывести только первую ошибку и вернуть false?

Привет
есть такой js код
$(document).ready(function() {
    $('#form_test').submit(function(){


        // убираем класс ошибок с инпутов
        $('input').each(function(){
            $(this).removeClass('error_input');
        });
        // прячем текст ошибок
        $('.error').hide();
         
        // получение данных из полей
        var name_user = $('#name_user').val();
        var email_user = $('#email_user').val();
        var password_user = $('#password_user').val();
        var password_2_user = $('#password_2_user').val();
	

        $.ajax({
            // метод отправки 
            type: "POST",
            // путь до скрипта-обработчика
            url: "vd.php",
            // какие данные будут переданы
            data: {
                'name_user': name_user, 
                'email_user': email_user,
                'password_user': password_user,
                'password_2_user': password_2_user
            },
            // тип передачи данных
            dataType: "json",
            // действие, при ответе с сервера
            success: function(data){
                // в случае, когда пришло success. Отработало без ошибок
				console.log(data);
                if(data.result == 'success'){   
                    alert('форма корректно заполнена');
					return true;
                // в случае ошибок в форме
                }else{
                    // перебираем массив с ошибками
					alert(data.text_error.email_user);
					
			
                    }
                }
            }
        });
    });
	
});

как сделать так что бы все ошибки выводились если они есть и форма возвращала false , у меня при любом раскладе возвращает true и идет редирект
  • Вопрос задан
  • 140 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
ewgenio
@ewgenio
Всё по чуть чуть
В самом вашем коде есть ошибка.
То что вам нужно реализуется следующим образом:
$(document).ready(function() {
    $('#form_test').submit(function(e){

        // устанавливаем false в возвращаемое значение по умолчанию
	e.preventDefault();
        e.returnValue = false;
		
        // убираем класс ошибок с инпутов
        $('input').each(function(){
            $(this).removeClass('error_input');
        });
        // прячем текст ошибок
        $('.error').hide();
         
        // получение данных из полей
        var name_user = $('#name_user').val();
        var email_user = $('#email_user').val();
        var password_user = $('#password_user').val();
        var password_2_user = $('#password_2_user').val();
	
	// запоминаем переменную с формой
	$form = $(this);
  

        $.ajax({
            // метод отправки 
            type: "POST",
            // путь до скрипта-обработчика
            url: "vd.php",
            // какие данные будут переданы
            data: {
                'name_user': name_user, 
                'email_user': email_user,
                'password_user': password_user,
                'password_2_user': password_2_user
            },
            // тип передачи данных
            dataType: "json",
            // действие, при ответе с сервера
            success: function(data){
                // в случае, когда пришло success. Отработало без ошибок
        console.log(data);
                if(data.result == 'success'){   
                    alert('форма корректно заполнена');
					// отключение проверки и submit
					$form.off('submit');
					$form.submit();
          return true;
                // в случае ошибок в форме
                }else{
                    // перебираем массив с ошибками
					alert(data.text_error.email_user);
          
      
                    }
                }
            
        });
    });
  
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы