Показать сообщение отдельно
  #1 (permalink)  
Старый 12.05.2014, 18:47
Аспирант
Отправить личное сообщение для alexmixaylov Посмотреть профиль Найти все сообщения от alexmixaylov
 
Регистрация: 14.09.2013
Сообщений: 70

запрет отправки аякс формы с валидацией
Хочу переделать обработчик формы
чтобы страничка не перегружалась

сделал с использованием ajax, отправляет корректно
только одна проблема с валидацией

ругается на неправильно заполненные поля
но форму все равно отправляет
а нужно чтобы не отправляла до тех пор, пока не будет корректно заполнена форма
<input class="button btn-order order-btn" type="submit" value="Заказать">

$(document).ready(function() {
        var sel_phone = $('input[name=phone]');
        sel_phone.mask('+38 (000) 000-00-00');
        if (sel_phone.val().length < 3)    sel_phone.val('+38');
        sel_phone.on('focus, focusout', function () {
            if ($(this).val().length < 3)    $(this).val('+38');
        });

        $('form').submit(function() {
            $('input[name=name]', this).val($.trim($('input[name=name]', this).val()));
            if(!$('input[name=name]', this).val()) {
                alert('Укажите корректные ФИО!');
                return false;
            }

            if(!$('input[name=phone]', this).val() || $('input[name=phone]', this).val().length < 18) {
                alert('Укажите корректный телефон!');
                return false;
            }
            return true;
        });
        $('a.order-btn').click(function(valida) {
            $(this).closest('form').submit();
            return false;
        });
    });

а это обработчик
$(function(){
	$('form').submit(function(e){
		e.preventDefault();
		var m_method=$(this).attr('method');
		var m_action=$(this).attr('action');
		var m_data=$(this).serialize();
		$.ajax({
			type: m_method,
			url: m_action,
			data: m_data,
			success: function(result){
				$('#result').show();
				
				}
			});
		});
});
Ответить с цитированием