Мне необходимо , если поле не заполнено то выводить сообщения и не закрывать окно с вводом
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 }); }
Дмитрий Антохин,
я так иделаю, но выглядит костыльно как-то