Как пользоваться функцией asyncValidate из BasePageV2 для проверки заполнения полей на странице ?
Здравствуйте.
У меня есть страница для ввода параметров поиска. Страница не привязана ни к какому объекту. Значения из её полей передаются в параметры бизнес-процесса, выполняющего поиск. Как мне с помощью функции asyncValidate из BasePageV2 проверить, что на моей странице поиска заполнены все поля?
Нравится
Здравствуйте, Евгений!
Для поля Вы можете использовать свойство enable: true. Этот признак сделает поле обязательным для заполнения. Таким образом Вы сможете осуществить валидацию на заполнения полей значениями.
Алексей, у меня в ТЗ указано, в частности, условие, что заполнение любого из полей не обязательно. Поэтому, я и прошу показать мне как проверить заполнение полей с помощью asyncValidate. Моя страница унаследована от модуля "Базовая схема карточки" из пакета NUI. К этому посту я прикрепил текстовый файл, содержащий Javascript страницы.
Евгений, добрый день!
Рекомендую Вам посмотреть реализацию данного метода в DocumentPageV2. Вы можете реализовать необходимый функционал по аналогии. Сначала необходимо реализовать метод проверки заполненности полей (по аналогии с validateAccountOrContactFilling), который принимает в качестве входящих параметров функцию обратного вызова и контекст выполнения, потом вызвать его в asyncValidate. Например:
[javascript]
asyncValidate: function(callback, scope) {
this.callParent([function(response) {
if (!this.validateResponse(response)) {
return;
}
Terrasoft.chain(
function(next) {
this.myValidationMethod(function(response) {
if (this.validateResponse(response)) {
next();
}
}, this);
},
function() {
callback.call(scope, response);
},
this);
}, this]);
},
[/javascript]