запрет отправки аякс формы с валидацией
Хочу переделать обработчик формы
чтобы страничка не перегружалась сделал с использованием 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(); } }); }); }); |
$('input[name=name]', this).val() а что тут делает this? для чего он тут? |
не смотрел как то в эту сторону
форма не моя, сейчас переделаю var nameform = $.trim($('input[name=name]').val()); if(nameform.length < 3) { alert('Укажите корректные ФИО!'); return false; } |
Цитата:
Открой консоль и прямо в ней выполни $('input[name=name]', 'YourFormID').val() И посмотри что напишет |
Спасибо все сделал
вставил скрипт обработчика в скрипт валидации $(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() { event.preventDefault(); $('input[name=name]', this).val($.trim($('input[name=name]', this).val())); if(!$('input[name=name]', this).val()) { alert('Укажите корректные ФИО!'); rstopImmediatePropagation(); } if(!$('input[name=phone]', this).val() || $('input[name=phone]', this).val().length < 19) { alert('Укажите корректный телефон!'); stopImmediatePropagation(); } //вставляем функцию отправки формы var all_data=$(this).serialize();//получаем данные из формы alert(all_data); $.ajax({ type: "POST", url: "send.php", data: all_data, success: function(result){ $('#result').show();//показываем окно } }); //конец функции }); $('a.order-btn').click(function() { $(this).closest('form').submit(); rstopImmediatePropagation(); }); }); |
Часовой пояс GMT +3, время: 02:10. |