Реализовать валидацию значения поля на странице

Средний
PDF

Пример. На страницу записи пользовательского раздела Validators добавить валидатор, который проверяет, что в поле Название (Name) установлено любое значение за исключением значения test.

1. Настроить интерфейс страницы 

  1. Используя шаблон Данные и бизнес-процессы (Records & business processes), создайте пользовательское приложение Validators. Для этого воспользуйтесь инструкцией, которая приведена в статье Создать пользовательское приложение.
  2. В рабочей области страницы приложения Validators откройте страницу Страница записи Validators (Validators form page).

    Поле Название (Name) по умолчанию добавлено на страницу Страница записи Validators (Validators form page).

  3. На панели действий Freedom UI дизайнера нажмите на кнопку . После сохранения настроек страницы открывается исходный код страницы Freedom UI.

2. Настроить валидацию значения поля 

Бизнес-логика настраивается в дизайнере клиентского модуля. В этом примере настроим валидацию значения поля. Валидатор добавляем к полю Название (Name) страницы Страница записи Validators (Validators form page).

  1. В секции validators реализуйте пользовательский валидатор usr.MyValidator.

    Секция validators
    validators: /**SCHEMA_VALIDATORS*/{
        /* Тип валидатора обязательно должен иметь вендорный префикс.
        Тип валидатора необходимо указывать в стиле PascalCase. */
        "usr.MyValidator": {
            "validator": function (config) {
                return function (control) {
                    return control.value !== config.invalidName ? null: {
                        "usr.MyValidator": { message: config.message }
                    };
                };
            },
            "params": [
                {
                    "name": "invalidName"
                },
                {
                    "name": "message"
                }
            ],
            "async": false
        }
    }/**SCHEMA_VALIDATORS*/
    
  2. В секции viewModelConfig привяжите валидатор MyValidator к атрибуту UsrName модели. В свойстве invalidName укажите значение "test". При вводе этого значения отображается сообщение об ошибке, которое указано в свойстве message.

    Секция viewModelConfig
    viewModelConfig: /**SCHEMA_VIEW_MODEL_CONFIG*/{
        "attributes": {
            "UsrName": {
                ...,
                "validators": {
                    /* Привязывает пользовательский валидатор к атрибуту. */
                    "MyValidator": {
                        "type": "usr.MyValidator",
                        "params": {
                            "invalidName": "test",
                            "message": "Invalid name"
                        }
                    }
                }
            },
            ...
        }
    }/**SCHEMA_VIEW_MODEL_CONFIG*/,
    
    Полный исходный код схемы страницы
  3. На панели инструментов дизайнера клиентского модуля нажмите Сохранить (Save).

Результат выполнения примера 

Чтобы посмотреть результат выполнения примера:

  1. Перейдите на страницу приложения Validators и нажмите Запустить приложение (Run app).
  2. На панели инструментов приложения Validators нажмите Добавить (New).
  3. В поле Название (Name) введите значение "test".
  4. На панели инструментов страницы валидатора нажмите Сохранить (Save).

В результате выполнения примера запись test не сохраняется и приложение выдает всплывающее уведомление об ошибке.

Сохранение другой записи (например, с именем Validator's name) выполняется корректно. Запись отображается в реестре раздела Validators.