Проверка полей и вывод ошибок
Сделал валидацию, которая проверяет заполнены необходимые поля или нет. Но столкнулся с проблемой, когда стало необходимым сделать следующее:
У меня есть поля Ответственный, Ответ и Дата исполнения. По логике человек сначало должен назначить ответственного, после этого он может уже заполнять поля Ответ и Дата исполнения. На данный момент человек может заполнить ответ и дата исполнения без ответственного, что не верно ( начальник ругается). Код валидации такой. (может кому пригодится) jQuery(document).ready(function(){ // ====================================================== // var jVal = { 'fullName' : function() { jQuery('body').append('<div id="nameInfo" class="info"></div>'); var nameInfo = jQuery('#nameInfo'); var ele = jQuery('#fullname'); var pos = ele.offset(); nameInfo.css({ top: pos.top-3, left: pos.left+ele.width()+15 }); if(ele.val().length < 6) { jVal.errors = true; nameInfo.removeClass('correct').addClass('error').html('← как минимум 6 символов!').show(); ele.removeClass('normal').addClass('wrong'); } else { nameInfo.removeClass('error').addClass('correct').html('√').show(); ele.removeClass('wrong').addClass('normal'); } }, 'dataisp' : function() { jQuery('body').append('<div id="dataisp" class="info"></div>'); var dataisp = jQuery('#dataisp'); var ele = jQuery('#dataisp'); var pos = ele.offset(); nameInfo.css({ top: pos.top-3, left: pos.left+ele.width()+15 }); if(ele.val().length < 1) { jVal.errors = true; nameInfo.removeClass('correct').addClass('error').html('← Данное поле обязательно к заполнению!').show(); ele.removeClass('normal').addClass('wrong'); } else { nameInfo.removeClass('error').addClass('correct').html('√').show(); ele.removeClass('wrong').addClass('normal'); } }, 'birthDate' : function (){ jQuery('body').append('<div id="birthInfo" class="info"></div>'); var birthInfo = jQuery('#birthInfo'); var ele = jQuery('#birthday'); var pos = ele.offset(); birthInfo.css({ top: pos.top-3, left: pos.left+ele.width()+15 }); var patt = /^[0-9]{4}\/[0-9]{2}\/[0-9]{2}jQuery/i; if(!patt.test(ele.val())) { jVal.errors = true; birthInfo.removeClass('correct').addClass('error').html('← Укажите дату!').show(); ele.removeClass('normal').addClass('wrong'); } else { birthInfo.removeClass('error').addClass('correct').html('√').show(); ele.removeClass('wrong').addClass('normal'); } }, 'gender' : function (){ jQuery('body').append('<div id="genderInfo" class="info"></div>'); var genderInfo = jQuery('#genderInfo'); var ele = jQuery('#woman'); var pos = ele.offset(); genderInfo.css({ top: pos.top-10, left: pos.left+ele.width()+60 }); if(jQuery('input[name="gender"]:checked').length === 0) { jVal.errors = true; genderInfo.removeClass('correct').addClass('error').html('← Вы мужчина или женщина?').show(); ele.removeClass('normal').addClass('wrong'); } else { genderInfo.removeClass('error').addClass('correct').html('√').show(); ele.removeClass('wrong').addClass('normal'); } }, 'vehicle' : function (){ jQuery('body').append('<div id="vehicleInfo" class="info"></div>'); var vehicleInfo = jQuery('#vehicleInfo'); var ele = jQuery('#ship'); var pos = ele.offset(); vehicleInfo.css({ top: pos.top-10, left: pos.left+ele.width()+40 }); if(jQuery('input[name="vehicle"]:checked').length <= 0) { jVal.errors = true; vehicleInfo.removeClass('correct').addClass('error').html('← Я уверен, как минимум вы владеете двумя!').show(); ele.removeClass('normal').addClass('wrong'); } else { vehicleInfo.removeClass('error').addClass('correct').html('√').show(); ele.removeClass('wrong').addClass('normal'); } }, 'email' : function() { jQuery('body').append('<div id="emailInfo" class="info"></div>'); var emailInfo = jQuery('#emailInfo'); var ele = jQuery('#email'); var pos = ele.offset(); emailInfo.css({ top: pos.top-3, left: pos.left+ele.width()+15 }); var patt = /^.+@.+[.].{1,}jQuery/i; if(!patt.test(ele.val())) { jVal.errors = true; emailInfo.removeClass('correct').addClass('error').html('← Введите правильный email').show(); ele.removeClass('normal').addClass('wrong'); } else { emailInfo.removeClass('error').addClass('correct').html('√').show(); ele.removeClass('wrong').addClass('normal'); } }, 'about' : function() { jQuery('body').append('<div id="aboutInfo" class="info"></div>'); var aboutInfo = jQuery('#aboutInfo'); var ele = jQuery('#about'); var pos = ele.offset(); aboutInfo.css({ top: pos.top-3, left: pos.left+ele.width()+15 }); if(ele.val().length < 6) { jVal.errors = true; aboutInfo.removeClass('correct').addClass('error').html('← Вопрос должен содержать не менее 6 символов!').show(); ele.removeClass('normal').addClass('wrong').css({'font-weight': 'normal'}); } else { aboutInfo.removeClass('error').addClass('correct').html('√').show(); ele.removeClass('wrong').addClass('normal'); } }, 'sendIt' : function (){ if(!jVal.errors) { jQuery('#jform').submit(); } } }; // ====================================================== // jQuery('#send1').click(function (){ var obj = jQuery.browser.webkit ? jQuery('body') : jQuery('html'); obj.animate({ scrollTop: jQuery('#jform').offset().top }, 750, function (){ jVal.errors = false; jVal.fullName(); jVal.about(); jVal.dataisp(); jVal.sendIt(); }); return false; }); jQuery('#fullname').change(jVal.fullName); jQuery('#about').change(jVal.about); jQuery('#dataisp').change(jVal.dataisp); // ====================================================== // }); Проблема в том, что как на php сделать проверку я знаю, но это уже будет перезагрузка формы, а необходимо это осуществить средствами Jquery. Нашел в сети код, который позволяет проверить пользователя в базе данных и переделав его он отказывается работать:( 'otvetstv' : function() { // получаем то, что ввёл пользователь var checkString = Jquery("#otvetstv").val(); // формируем строку запроса var data = 'user='+ checkString; // если checkString не пуста if(checkString) { // делаем ajax запрос Jquery.ajax({ type: "POST", url: "do_check.php", data: data, beforeSend: function(html) { // перед отправкой Jquery("#results").html(''); }, success: function(html){ // получаем результаты Jquery("#results").show(); Jquery("#results").append(html); } }); } return false; }); }); do_check.php такой //если к нам идёт $_POST запрос if (isset($_POST['user'])) { if(isset($_POST['otvetstv']) && empty($_POST['otvet']) && empty($_POST['dataisp'])) { echo 'Все нормально!'; } else { echo 'Введите ответственного!'; } } Помогите пожалуйста, а то показывать начальнику уже а голова не варит. |
Если так сложно ребят, то скажу по другому.
Как на Jquery сделать обычную проверку. Если поле заполнено 1 заполнено, а 2, 3 поля нет, то все нормально... или же когда все поля заполнены, тоже все нормально. Но если же заполнены 2 или 3 поля, а поле 1 нет, то вывести ошибку. С этим "Возможно для кого то простым кодом" бьюсь уже целый день, вот только за ещё один день, я js точно не выучу :( |
Цитата:
|
Цитата:
Блин, вот серьезно, на одном форуме пошлют читать мануал ( если бы работу сдавать через месяц к примеру, то я бы и пошел штудировать новый язык), тут дают полезные советы "использую условия'.... зачем тогда отписываться? Спасибо блин, профессионалы. |
Часовой пояс GMT +3, время: 22:59. |