Валидация на преднастроенной странице

Добрый день,

Есть несколько преднастроенных страниц (использую в БП). Необходимо настроить валидацию определенных полей (напр. только цифры).

Пробовала настроить по аналогии с валидацией на странице раздела, но на преднастроенной странице валидация не срабатывает.

Явно, я что-то упускаю срецифическое для преднастроенных страниц? Просьб направить в правильном направлении.

Пример метода, которй я использую:

            setValidationConfig: function() {

               this.addColumnValidator("CrpINN", this.innValidator);

            },

                innValidator: function(value) {

                var invalidMessage = "";

                var isValid = true;

                var number = value || this.get("CrpINN");

                isValid = (Ext.isEmpty(number) ||

                    new RegExp("^[0-9]{8}$").test(number));

                if (!isValid) {

                    invalidMessage = this.get("Resources.Strings.InvalidINNCodeFormat");

                }

                return {

                    invalidMessage: invalidMessage

                };

            },

      

Заранее спасибо.

 

 

Нравится

4 комментария

судя по всему проблема в том, что преднастроенная страница и обычная страница раздела унаследованы от разных родителей. Следовательно в зависимости преднастроенной нужно добавить тот модуль, в котором реализован функционал валидации. Беглым поиском нашел BaseSchemaViewModel, однако не уверен на 100%.

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

Вадим Косарев,

 Спасибо! Я обязательно разберусь с зависимостями.

 

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

Ксения, если там должны быть только цифры, может вместо валидации получится с добавлением маски телефонного номера? Пример описан тут.

Все оказалось гораздо проще  - для преднастроенной страницы необходимо указать поле+сослаться на основную страницу. Все заработало.

 

setValidationConfig: function() {

             this.addColumnValidator("CrpPortalProductRequest1.CrpINN", this.innValidator);

            },

                innValidator: function(value) {

                

                var invalidMessage = "";

                var isValid = true;

                var number = value || this.get("CrpPortalProductRequest1.CrpINN");

            

                isValid = (Ext.isEmpty(number) ||

                    new RegExp("^[0-9]{8}$").test(number));

                if (!isValid) {

                    invalidMessage = this.get("Resources.Strings.InvalidINNCodeFormat");

                }

                return {

                    invalidMessage: invalidMessage

                };

            },

Показать все комментарии