Добрый день,
Есть несколько преднастроенных страниц (использую в БП). Необходимо настроить валидацию определенных полей (напр. только цифры).
Пробовала настроить по аналогии с валидацией на странице раздела, но на преднастроенной странице валидация не срабатывает.
Явно, я что-то упускаю срецифическое для преднастроенных страниц? Просьб направить в правильном направлении.
Пример метода, которй я использую:
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
};
},
Заранее спасибо.
Нравится
судя по всему проблема в том, что преднастроенная страница и обычная страница раздела унаследованы от разных родителей. Следовательно в зависимости преднастроенной нужно добавить тот модуль, в котором реализован функционал валидации. Беглым поиском нашел 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
};
},