Показать сообщение отдельно
  #1 (permalink)  
Старый 12.02.2013, 16:09
Новичок на форуме
Отправить личное сообщение для stimka Посмотреть профиль Найти все сообщения от stimka
 
Регистрация: 12.02.2013
Сообщений: 3

Проверка полей и вывод ошибок
Сделал валидацию, которая проверяет заполнены необходимые поля или нет. Но столкнулся с проблемой, когда стало необходимым сделать следующее:

У меня есть поля Ответственный, Ответ и Дата исполнения.
По логике человек сначало должен назначить ответственного, после этого он может уже заполнять поля Ответ и Дата исполнения. На данный момент человек может заполнить ответ и дата исполнения без ответственного, что не верно ( начальник ругается).

Код валидации такой. (может кому пригодится)

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('&larr; как минимум 6 символов!').show();
				ele.removeClass('normal').addClass('wrong');				
		} else {
				nameInfo.removeClass('error').addClass('correct').html('&radic;').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('&larr; Данное поле обязательно к заполнению!').show();
				ele.removeClass('normal').addClass('wrong');				
		} else {
				nameInfo.removeClass('error').addClass('correct').html('&radic;').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('&larr; Укажите дату!').show();
				ele.removeClass('normal').addClass('wrong');					
		} else {
				birthInfo.removeClass('error').addClass('correct').html('&radic;').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('&larr; Вы мужчина или женщина?').show();
				ele.removeClass('normal').addClass('wrong');		
		} else {
				genderInfo.removeClass('error').addClass('correct').html('&radic;').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('&larr; Я уверен, как минимум вы владеете двумя!').show();
				ele.removeClass('normal').addClass('wrong');		
		} else {
				vehicleInfo.removeClass('error').addClass('correct').html('&radic;').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('&larr; Введите правильный email').show();
				ele.removeClass('normal').addClass('wrong');					
		} else {
				emailInfo.removeClass('error').addClass('correct').html('&radic;').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('&larr; Вопрос должен содержать не менее 6 символов!').show();
				ele.removeClass('normal').addClass('wrong').css({'font-weight': 'normal'});		
		} else {
				aboutInfo.removeClass('error').addClass('correct').html('&radic;').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 'Введите ответственного!';
    }
}


Помогите пожалуйста, а то показывать начальнику уже а голова не варит.
Ответить с цитированием