| 
	| 
	
	| 
		
	| 
			
			 
			
				01.02.2010, 11:54
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 01.02.2010 
						Сообщений: 4
					 
		
 |  |  
	| 
				Валидация полей - сравнение полей пароль
			 Подскажите где ошибка  или в JS так вообще нельзя? 
Вот выдержка кода
 
$().ready(function(){
	           $("#myForm").validate({
		           rules : 
			          pass : "required",
			          rpass: {required :true, compare:('rpass')!=('pass'),},
		                  },
		           messages : 
				   pass : "Введите пароль",
				   rpass:{
					required:"ПОВТОРИТЕ ПАРОЛЬ",
					compare:"Вы ошиблись при повторе пароля",
							},
					
	                              });
});
 |  |  
	| 
		
	| 
			
			 
			
				01.02.2010, 13:32
			
			
			
		 |  
	| 
		
			|  | 猫       |  | 
					Регистрация: 07.06.2007 
						Сообщений: 7,504
					 
		
 |  |  
	| 
	
 
	| Сообщение от olva   |  
	| Подскажите где ошибка  или в JS так вообще нельзя? Вот выдержка кода
 
 
$().ready(function(){
	           $("#myForm").validate({
		           rules : 
			          pass : "required",
			          rpass: {required :true, compare:('rpass')!=('pass'),},
		                  },
		           messages : 
				   pass : "Введите пароль",
				   rpass:{
					required:"ПОВТОРИТЕ ПАРОЛЬ",
					compare:"Вы ошиблись при повторе пароля",
							},
					
	                              });
});
 |  
	
 вроде так:
 
$().ready(function(){
  $("#myForm").validate({
       rules : {
           pass : "required",
           rpass: { 
                    required :true, 
                    compare:('rpass')!=('pass') 
            }
       },
       messages : {
           pass : "Введите пароль",
           rpass:{ 
                     required:"ПОВТОРИТЕ ПАРОЛЬ",
                     compare:"Вы ошиблись при повторе пароля" 
           }
       }
  });
});
Вы похоже совсем не понимаете, что тут написано  			 Последний раз редактировалось Gozar, 01.02.2010 в 13:45.
 |  |  
	| 
		
	| 
			
			 
			
				01.02.2010, 13:48
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 01.02.2010 
						Сообщений: 4
					 
		
 |  |  
	| Спасибо за ответ. Я прошу извинить - у меня так и есть - делал вырезку из основного кода и пропустил скобку . А баг выглядит так-при проверке поля rpass заполнено оно или нет, правильно или нет - сообщение одно ПОВТОРИТЕ ПАРОЛЬ и оно изчезает при отправлении формы даже при разных паролях 			 Последний раз редактировалось olva, 01.02.2010 в 14:35.
				Причина: дополнение
 |  |  
	| 
		
	| 
			
			 
			
				01.02.2010, 14:27
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 01.02.2010 
						Сообщений: 4
					 
		
 |  |  
	| 
	
 
	| Сообщение от Gozar |  
	| Вы похоже совсем не понимаете, что тут написано |  
	
  Селектор $(”#myForm”) получает указатель на форму, а функция validate() устанавливает правила для полей в соответствии с полученными данными. Объект rules содержит имя поля и список правил. Если правил несколько, то они  объединены в отдельный объект. Так, для поля pass просто указано правило “required”, т.е. обязательное поле, в то время как для поля rpass указан объект содержащий два правила – required и сравнение двух полей - неравность rpass и pass. Структура объекта messages такая же, как и для rules, за исключением того, что вместо атрибутов правил указаны сообщения об ошибках.
 
Если при отправке формы обнаружены ошибки, то форма не отправляется, а высвечивается сообщение об ошибке в виде тэга с классом error. |  |  
	| 
		
	| 
			
			 
			
				01.02.2010, 17:08
			
			
			
		 |  
	| 
		
			|  | 猫       |  | 
					Регистрация: 07.06.2007 
						Сообщений: 7,504
					 
		
 |  |  
	| 
	
 
	| Сообщение от olva   |  
	| А баг выглядит так-при проверке поля rpass заполнено оно или нет, правильно или нет - сообщение одно ПОВТОРИТЕ ПАРОЛЬ и оно изчезает при отправлении формы даже при разных паролях |  
	
 Ну я не знаток jquery, юзаю только если что-нибудь в нем мне понадобится, поэтому могу и ошибаться.  
compare:('rpass')!=('pass') //всегда вернет true так как сравниваются две разные строки, а именно: 'rpass' и 'pass', а не значения переменных
 |  |  
	| 
		
	| 
			
			 
			
				01.02.2010, 19:31
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 15.12.2009 
						Сообщений: 742
					 
		
 |  |  
	| 
	
 
	| Сообщение от Gozar |  
	| 
compare:('rpass')!=('pass')
 |  
	
 тут видимо надо переменные подставлять со значениями или я тоже чегото не понял и на это обратил внимание но, подумал что "так задумано" |  |  
	| 
		
	| 
			
			 
			
				01.02.2010, 19:45
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 01.02.2010 
						Сообщений: 4
					 
		
 |  |  
	| Логика подсказывает что нужны переменные - но только такие варианты 
var pass = document.forms['myForm'].elements['pass'];
var rpass = document.forms['myForm'].elements['rpass'];
 
или вот так 
 
var pass = $('#myForm').val('pass');
var rpass = $('myForm').val('rpass');
тоже не корректны. Форма отправляется на сервер без проверки JS. 
Совсем заблудился!! |  |  
	| 
		
	| 
			
			 
			
				01.02.2010, 20:54
			
			
			
		 |  
	| 
		
			|  | 猫       |  | 
					Регистрация: 07.06.2007 
						Сообщений: 7,504
					 
		
 |  |  
	| 
	
 
	| Сообщение от olva   |  
	| Логика подсказывает что нужны переменные - но только такие варианты 
 
var pass = document.forms['myForm'].elements['pass'];
var rpass = document.forms['myForm'].elements['rpass'];
 или вот так
 
 
var pass = $('#myForm').val('pass');
var rpass = $('myForm').val('rpass');
тоже не корректны. Форма отправляется на сервер без проверки JS.
 Совсем заблудился!!
 |  
	
 можно вот так:
 
var pass = $('#myForm')[0].pass.value;
 |  |  
	| 
 
 
 
 
 
	| Тема | Автор | Раздел | Ответов | Последнее сообщение |  
	| проверка полей формы!!!! | DENAT | Общие вопросы Javascript | 0 | 05.06.2008 22:14 |  
 
 |  |  |