Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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 'Введите ответственного!';
    }
}


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

Если так сложно ребят, то скажу по другому.

Как на Jquery сделать обычную проверку.

Если поле заполнено 1 заполнено, а 2, 3 поля нет, то все нормально... или же когда все поля заполнены, тоже все нормально.

Но если же заполнены 2 или 3 поля, а поле 1 нет, то вывести ошибку.

С этим "Возможно для кого то простым кодом" бьюсь уже целый день, вот только за ещё один день, я js точно не выучу
Ответить с цитированием
  #3 (permalink)  
Старый 12.02.2013, 17:13
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от stimka
Как на Jquery сделать обычную проверку.
if / then / else
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 12.02.2013, 19:43
Новичок на форуме
Отправить личное сообщение для stimka Посмотреть профиль Найти все сообщения от stimka
 
Регистрация: 12.02.2013
Сообщений: 3

Сообщение от nerv_ Посмотреть сообщение
if / then / else
Извините, вопрос такова характера: вы всем такие советы даёте? Я попросил помощи у знающих людей, а такие ответы, при том что я знаю PHP, никак мне не помогут. Я нашел примерную реализацию данного условия, но там работа с массивами + условие идет без "or" (как на js оно обозначаеться я не знаю, вроде запятой).

Блин, вот серьезно, на одном форуме пошлют читать мануал ( если бы работу сдавать через месяц к примеру, то я бы и пошел штудировать новый язык), тут дают полезные советы "использую условия'.... зачем тогда отписываться?

Спасибо блин, профессионалы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод выбранных данных и проверка checkbox MasterHrust Javascript под браузер 3 28.09.2011 17:44
Проверка полей на форме alex_89 Общие вопросы Javascript 2 13.05.2011 14:12
Проверка полей отправляемой формы. denisOgr jQuery 6 18.10.2010 19:40
автоматический вывод полей nastya Общие вопросы Javascript 5 10.02.2009 07:20
проверка полей формы!!!! DENAT Общие вопросы Javascript 0 05.06.2008 22:14