Плагин jquery.validation не умеет работать с элементами с одинаковыми именами. Использование одинаковых имен ведет, во-первых, к тому, что валидируется только первый элемент, ну и, во-вторых, ко всяким глюкам с неверным позиционированием сообщения об ошибке и пр. Всякие костыли (например, http://www.codeboss.in/web-funda/2009/05/27/jquery-validation-for-array-of-input-elements/) работают лишь частично (например, элемент начинает вроде бы валидироваться, но сообщение об ошибке все равно у всех одноименных элементов одно на всех). Поправить эту ситуацию изменением пары строк в исходниках не получится - слишком многое в них завязано на имена элементов. Поэтому остается лишь ходить обходными путями, например, назначать элементам уникальные имена и преобразовывать их при отправке провалидированной формы в обработчике, назначенном параметром "submitHandler" в вызове validate().
barbitoff programmer`s blog
Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)
Показаны сообщения с ярлыком jquery.validation. Показать все сообщения
Показаны сообщения с ярлыком jquery.validation. Показать все сообщения
среда, 25 июля 2012 г.
четверг, 19 апреля 2012 г.
Валидация ip-v4 адресов на jquery-input-ip-address-control и jquery.validation
1) Подключаем нужные скрипты (качаются тут и тут):
<script type="text/javascript" src="js/jquery.validate.min.js"></script>2) Добавляем скрипт:
<script type="text/javascript" src="js/jquery.input-ip-address-control-1.0.min.js"></script>
$(document).ready(function(){
jQuery.validator.addMethod("ipv4",function(value, element)
{
return this.optional(element) || value!="___.___.___.___";
});
jQuery.validator.addClassRules("ip-address-input",{ipv4:true});
$("#myFormId").validate(
{
errorPlacement: function(error, element){} // no error messages
});
$('input.ip-address-input').ipAddress({v:4});
});
Этот скрипт включит валидацию для формы #myFormId (про неё я уже писал тут), а также обеспечивает все поля ввода с классом "ip-address-input" маской для ввода ip-v4 адреса. В случае, если у такого поля ввода установлен также класс "required", форма не отправится, если в поле не введен корректный ip-v4 адрес (в функции-валидаторе значение проверяется только на неравенство "___.___.___.___", т.к. jquery-input-ip-address-control не даст ввести в поле некорректный ip-v4) . Пример такого поля ввода:
<input type="text" class="ip-address-input required" name="ip_1" />Также, чтобы незаполненные поля подсвечивались красной рамкой, нужно добавить css:
.error
{
border-color: red;
}
в
16:05:00
0
коммент.
Отправить по электронной почтеНаписать об этом в блогеПоделиться в XОпубликовать в FacebookПоделиться в Pinterest
Ярлыки:
валидация формы,
валидация ip-адресов jQuery,
Form,
input-ip-address,
JavaScript,
jQuery,
jQuery ip,
jQuery plugin,
jQuery Validation plugin,
jquery.validation,
Validation
Подписаться на:
Сообщения (Atom)