Валидацию для inputbox, каким образом реализовать ?
Мне необходимо , если поле не заполнено то выводить сообщения и не закрывать окно с вводом
disLeadChoiser: function() {
this.set("myList", new Terrasoft.Collection());
this.set("myEnum", new Terrasoft.Collection());
var controlConfig = {
reasonDis: {
dataValueType: Terrasoft.DataValueType.ENUM,
customConfig: {
tag: "ReasonDis",
list: {
bindTo: "myList"
},
prepareList: {
bindTo: "getCollectionValues"
},
change: {
bindTo: "onMyValueChange"
}
},
isRequired: true,
caption: "Причина дисквалификации",
value: null
},
text: {
customConfig: {
className: "Terrasoft.MemoEdit",
},
isRequired: true,
dataValueType: Terrasoft.DataValueType.TEXT,
caption: "Причина дисквалификации",
value: "",
},
};
this.showInputBox(controlConfig, false);
},
showInputBox : function(controlConfig, status){
var self = this;
Terrasoft.utils.inputBox("Укажите причину дисквалификации",
function(buttonCode, controlData) {
if (buttonCode === "yes") {
if(!controlData.text.value){
if(status) {
self.showInformationDialog("Заполните обязательные поля");
}
self.showInputBox(controlConfig, true);
return;
}
this.setDataDisqualifydedLead(controlData);
}
},
[
{
className: "Terrasoft.Button",
caption: "Продолжить",
returnCode: "yes"
},
{
className: "Terrasoft.Button",
caption: "Отмена",
returnCode: "no"
}
],
this,
controlConfig,
{defaultButton: 0}
);
Terrasoft.each(Terrasoft.MessageBox.controlArray, function(item) {
item.control.bind(this);
}, this);
},
Нравится
Здравствуйте, можно поподробнее описать задачу.
А установить поле обязательным для заполнения, не решает вашу задачу?
Булат Хабирзянов,
речь не про просто страницу редактирования, а именно inputbox(код выше прикрепил ), я сначала делал через кастомные модальные окна, но с справочными полями у меня ничего не вышло, поэтому пал выбор на inputbox, в котором я пытаюсь сделать валидацию
Когда я нажимаю на ок или отмена, то окно закрывается без проверки, как сделать , что бы оно не закрывалось и я хотя бы вывел сообщение о обязательности полей
Dima Avdoshin,
Можно проверять введенное значение. И если оно пустое, то показывать модалку еще раз. примерно так:
showInput: function() {
Terrasoft.showInputBox("Введите текст", function(result1, arg1, arg2) {
if (result1)
if (arg1.name.value) {
Terrasoft.showConfirmation("все ок, вы ввели " + arg1.name.value);
}
else {
this.showInput();
}
}, ["ok"], null, {
name: {
dataValueType: Terrasoft.DataValueType.TEXT,
value: "",
customConfig: {
className: "Terrasoft.MemoEdit",
height: "50px"
}
}
}, {
defaultButton: 0
});
}
Дмитрий Антохин,
я так иделаю, но выглядит костыльно как-то