Всем доброго времени! Есть вопрос на примере простенького процесса:

Изображение удалено.

 

Если пользователь выбирает вариант:

"Отлично" - шаг должен завершится без обязательного заполнения поля "комментарий".

"Плохо" - шаг должен завершится с обязательным заполнением поля "комментарий".

 

Как проще реализовать проверку факта заполнения поля в зависимости от нажатой кнопки?

 

Нравится

4 комментария
Лучший ответ

Сделайте поле "Комментарий" обязательным

И при кнопке "Хорошо" уберите проверку обязательности

Так чтобы реализовать это непосредственно в рамках одного элемента, вероятно не получится. По крайней мере не прибегая к средствам разработки. Но можно попробовать немного обойти это, добавив 2 страницы чуть модифицировав вторую, что-бы при выборе 2-го варианта, открывалась 2-я страница на которой комментарий уже будет обязательным. Чуть ниже пример.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сделайте поле "Комментарий" обязательным

И при кнопке "Хорошо" уберите проверку обязательности

t.ponomarov,

спасибо, этот вариант не хотел использовать чтобы не "отлучать" пользователя от информации на главной странице.

Владимир Соколов,

спасибо, как то не сообразил за эту функцию. 

 

Если в один элемент, то только через преднастроенную страницу.

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

Например, есть поле у которого мы хотим динамически включать/выключать "обязательность заполнения".
Для этого можно использовать следующую функцию:

function SetFieldIsRequried(Window, Dataset, FieldName, IsRequired) {
  if (!Assigned(Window)) {
    return;
  }
  if (IsRequired != false) {
    var IsRequired = true;     
  }
  if (IsRequired) {
    Window.ComponentsByName('edt' + FieldName).CaptionColor =
      LayoutLookAndFeelRequiredItemColor;
  } else {
    Window.ComponentsByName('edt' + FieldName).CaptionColor =
      LayoutLookAndFeelDefaultItemColor;
  }
  Dataset.DataFields.ItemsByName(FieldName).IsRequired = IsRequired;
}

Нужно удостовериться что в вашем скрипте подключен скрипт "scr_Consts",
где описаны 2 константы:
var LayoutLookAndFeelRequiredItemColor = 0x076FF4;
var LayoutLookAndFeelDefaultItemColor = 0x874011;

Нравится

Поделиться

1 комментарий

Для получения цвета лучше использовать следующую функцию:

var Default16LayoutBlackColor = 0x000000;
 
function GetControlCaptionColorByThemeIsRequirment(IsRequired){
  var Color;
  var Theme = Connector.Attributes('THEME');
  var UseTheme = !((Theme.toUpperCase() == 'FALSE')||(Theme == '0'))
  if (IsRequired) {
    if (UseTheme){
      Color = LayoutLookAndFeelRequiredItemColor;
    } else {
      Color = Default16LayoutRedColor;
    }
  } else {
    if (UseTheme){
      Color = LayoutLookAndFeelDefaultItemColor;
    } else {
      Color = Default16LayoutBlackColor;
    }
  }
  return Color;
}
Показать все комментарии