Валидаторы полей

Правила валидации разделяются знаком ;. Параметры для правил передаются через знак :. Пример корректного списка правил, содержащего два правила, одно из них с параметром: "notempty;minlength:6"

наименование Описание Параметр
notempty Поле не может быть пустым. Если это набор radio-инпутов, то один из них должен быть помечен. -
minlength Не менее {%} символов кол-во символов
maxlength Не более {%} символов кол-во символов
hasdomain Адрес должен начинаться с верного домена ({%}) домен
isnumeric Поле может содержать только цифры -
isemail Должен быть введен корректный E-Mail -
isdate Поле должно содержать дату -
isphone Поле должно содержать номер телефона -
minint Минимальное вводимое число {%} число
maxint Максимальное вводимое число {%} число
intonly Можно ввести только число число
passretry Должно быть равно полю с паролем наименование поля с паролем, по-умолчанию "password"
checked Проверить, что на checkbox-элементе стоит галочка. Используется для необходимости согласиться с условиями лицензии, например. -

Добавление своего валидатора

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

$(window).load(function(){
  PrettyForms.Validator.setValidator('needempty', 'Поле должно быть пустым!', function(element, value, param){
      // needempty - название валидатора
      // второй параметр - сообщение об ошибке
      // третий - это сама функция валидации, в которую передаются три параметра: jQuery-элемент, значение элемента и параметр валидатора, если он был передан в свойствах валидации
      return value === '';
  });
});

Дополнительные атрибуты валидации

Библиотека также позволяет добавлять к полям некоторые дополнительные атрибуты, которые регулируют поведение проверки поля.

атрибут Описание Обязательно?
data-dontsend="true" Отключает проверку данного поля и его отправку на сервер Нет

Валидация на сервере

Валидацией на сервере должен заниматься тот фреймворк, с которым вы работаете. Библиотека ожидает в качестве ответа объект, ключи которого - это названия команд, а значения - это параметры команды. Так, команда отображения ошибок валидации называется validation_errors, а в качестве её параметров должен быть указан уже другой объект, ключами которого являются названия полей, а в качестве их значений должны содержаться одномерные массивы с текстами ошибок валидации, которые были не пройдены.

Говоря другими словами, логика должна быть примерно следующая: если валидация полей не прошла, то сервер возвращает JSON-ответ с командой отображения ошибок. Если же валидация прошла успешно, сервер возвращает JSON-ответ с другими командами, например, редиректит пользователя на страницу сообщения об успешной регистрации. Пример подготовки ответа на PHP:

// Валидируем данные, сохраняем результат валидации в $validation_success

if ($validation_success === false) {
    // Данные невалидны
    $json_response = [
        'validation_errors' => [
            'field_name' => array('error_message_1','error_message_2'),
            'second_field_name' => array('error_message')
            // и так далее
        ]
    ]);
} else {

    // Здесь пишем тот код, который нужно выполнить на сервере..

    // И подготавливаем клиенту ответ с командами:
    $json_response = [
        'redirect' => '/registration_success'
    ];
}

// Возвращает ответ клиенту
echo json_encode($json_response);