"Уже сегодня делай то, о чем другие будут думать завтра!"

Валидация Formit

Сайдбар

! Начиная с версии FormIt 1.4.0 валидация изменилась. Старый метод проведения проверки на входе имен все еще доступен для всех версий до FormIt 2.0.0, в которой его исключают. Рекомендуется новый способ – с использованием свойства &validate.

 

Валидация может быть легко пройдена путем добавления полей для проверки в свойство &validate запроса сниппета. Например, чтобы сделать поле имени пользователя обязательным, можно проделать следующую операцию:


 [[!FormIt? &validate=`username:required`]]



Валидаторы также могут быть «chained» (сцепленными), или выполняться последовательно. Следующий пример показывает, как сначала проверить, является ли поле обязательным, а далее удалитьт все теги из поста:


[[!FormIt? &validate=`text:required:stripTags`



Множественные поля и валидаторы разбиваются (split) запятыми:


 

[[!FormIt? &validate=`date:required:isDate=^%m/%d/%Y^,

    name:required:testFormItValidator,

    email:email:required,

    colors:required,

    subject:required,

    username:required:islowercase,

    message:stripTags,

    numbers:required`]]




FormIt позволяет разбить валидаторы на большое количество строк, если Вы хотите.

Запомните: не используйте обратные кавычки (`) внутри запроса валидации. Замените на знак ^:


[[!FormIt? &validate=`date:required:isDate=^%m/%d/%Y^`]]

 

Это позволит отрегулировать запрос и наладить его правильное выполнение.

Общее сообщение об ошибке для валидаторов полезно в том случае, если ошибки не показываются, но проверка не удается. Используется со следующим плейсхолдером:


[[!+fi.validation_error_message]]

 

Здесь содержится сообщение об ошибке проверки, которое может быть задано с помощью свойства &validationErrorMessage с использованием в значении свойства, которое заменит все ошибки поля.

Кроме того также имеется 1/0 плейсхолдер:


[[!+fi.validation_error]]<br /><br /><br />

Встроенные валидаторы

Имя

Функция

Параметр

Пример

blank

Поле чистое?

 

nospam:blank

required

Поле не пустое?

 

username:required

password_confirm

Поле соответствует значению или другому полю?

Имя поля пароля

password2:password_confirm=^password^

email

Email-адрес валидный?

 

emailaddr:emai

minLength

Поле ≥ Х символов?

Минимальная длина

password:minLength=^6^

maxLength

Поле ≤, чем Х символов?

Максимальная длина

password:maxLength=^12^

minValue

Поле ≥ Х?

Минимальное значение

donation:minValue=^1^

maxValue

Поле ≤ Х?

Максимальное значение

cost:maxValue=^1200^

contains

Поле содержит последовательность Х?

Последователь-ность Х

title:contains=^Hello^

strip

Разбитие определенной после-довательности из поля

Последователь-ность для разбивки

message:strip=^badword^

stripTags

Разбитие всех тегов в поле. Учтите, это только по умолчанию.

Опционный список разрешенных тегов.

message:stripTags

allowTags

Разрешить теги в поле.

 

content:allowTags

isNumber

Поле – это числовое значение?

 

cost:isNumber

isDate

Поле – это дата?

Опционный формат даты.

startDate:isDate=^%Y-%m-%d^

 


Настраиваемые валидаторы (Custom Validators)

 

Валидаторы могут быть также настраиваемыми сниппетами. Вы можете сделать это, просто указав имя сниппета в свойстве customValidators:


 [[!FormIt? &customValidators=`isBigEnough`]]

 


! В версии FormIt 1.2.0 все настраиваемые валидаторы должны быть указаны в свойстве customValidators, иначе они не запустятся.

 

Далее, когда валидатор в свойстве  &validate:


[[!FormIt? &validate=`cost:isBigEnough`]]




Теперь в Вашем сниппете – «isBigEnough»:


<?php
$value = (float)$value;
$success = $value > 1000;
if (!$success) {
  // Обратите внимание, как мы можем здесь добавить ошибку в поле.
  $validator->addError($key,'Not big enough!');
}
return $success;
?>


 Валидатор отправит следующие свойства сниппету, в массив $scriptProperties:

Имя

 Функция

key

Ключ проверенного поля

value

Значение поля, которое было отсрочено (POSTed)

param

Если параметр был определен для валидатора, это он

type

Имя валидатора (или сниппета)

validator

Ссылка на экземпляр класса fiValidator.

 


Настраиваемые сообщения об ошибках

В версии FormIt 2.0-pl, Вы можете перезаписать сообщения об ошибках, которые выводятся валидаторами, если отправите соответствующее свойство:

Валидатор

Свойство

blank

vTextBlank

required

vTextRequired

password_confirm

vTextPasswordConfirm

email

vTextEmailInvalid, vTextEmailInvalidDomain

minLength

vTextMinLength

maxLength

vTextMaxLength

minValue

vTextMinValue

maxValue

vTextMaxValue

contains

vTextContains

isNumber

vTextIsNumber

isDate

vTextIsDate

regexp

vTextRegexp

 

Вы также можете определить сообщение для каждого поля с помощью задавания ключевого поля в префиксе свойства. Например, чтобы перезаписать «required» (запрашиваемый, обязательный) сообщение валидатора, просто добавьте в запрос FormIt:

 

 

[[!FormIt?

  &amp;vTextRequired=`Please enter a value for this field.`

  &subject.vTextRequired=`Please enter a subject.`

]]



Используйте &subject.vTextRequiredдля поля темы, а для всех других полей – сообщение vTextRequired.

 




Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

telegram: @Accusser
skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Sign In