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 |
|
|
|