barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)
Показаны сообщения с ярлыком Validation. Показать все сообщения
Показаны сообщения с ярлыком Validation. Показать все сообщения

четверг, 19 апреля 2012 г.

Валидация ip-v4 адресов на jquery-input-ip-address-control и jquery.validation

1) Подключаем нужные скрипты (качаются тут и тут):
<script type="text/javascript" src="js/jquery.validate.min.js"></script>
<script type="text/javascript" src="js/jquery.input-ip-address-control-1.0.min.js"></script>   
2) Добавляем скрипт:
$(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;
}

среда, 18 апреля 2012 г.

Простейшая валидация обязательных полей формы с jQuery-плагином Validation

Задача:

Не дать пользователю отправить формы с незаполненными некоторыми полями, подсветить незаполненные поля красной рамкой при попытке отправки.

Решение:

1) Подключаем плагин (скачать можно тут):
<script type="text/javascript" src="js/jquery.validate.min.js"></script> 
2) Устанавливаем класс "required" для тех полей формы, которые мы хотим сделать обязательными:
<input type="text" name="ip" size="30" class="required"/>
3) Добавляем JS-код:


$(document).ready(function(){
    $("#myFormId").validate(
{
errorPlacement: function(error, element){} // no error messages                                  

});
  });
Здесь предполагается, что валидируемая форма имеет идентификатор "myFormId". Пустая функция  errorPlacement позволит не показывать не нужные текстовые сообщения о незаполненности поля (т.к. нам достаточно только подсветки).
4) Делаем собственно подсветку незаполненных полей, добавляя CSS:
.error
{
  border-color: red;
}

вторник, 31 января 2012 г.

YUI DataTable: определение редактируемой записи и её индекса из функции-валидатора

Функция-валидатор редактора ячеек таблицы вызывается в контексте этой таблицы, которая, следовательно, доступна валидатору через this. Получить редактируемую запись (Record) можно вызовом:
this.getCellEditor().getRecord()
Таким образом, можно из валидатора обращаться к другим полям той записи, к которой относится валидируемая ячейка (если, скажем, нужно сравнить новое значение с значением в другой ячейке той же строки). 
Определить индекс редактируемой записи в RecordSet табицы можно следующим образом:
this.getRecordIndex(this.getCellEditor().getRecord())