Изменить поле в экземпляре в LiveCycle

Я работаю в LiveCycle, создавая форму, которая позволяет пользователю дублировать подформу по мере необходимости. В этом наборе полей есть раскрывающийся список, и если для него установлены определенные значения, должно отображаться поле, которое обычно скрыто. Я хочу, чтобы это отображалось только в том экземпляре вспомогательной формы, в которой они сделали этот выбор. Итак, мой вопрос: как определить, какой экземпляр запустил событие? Если я получу это, я думаю, что смогу уйти оттуда, внеся изменения.

Я все еще новичок в LiveCycle, и ресурсы в лучшем случае разбросаны. Любая помощь приветствуется.

PS Я использую Javascript, а не FormCalc.


person HarvP    schedule 14.02.2017    source источник


Ответы (1)


самый простой способ — использовать встроенные функции, которые помогут вам обращаться к нужным объектам в вашем коде. Когда вы вводите свой код в окно скрипта, просто удерживайте Ctrl и щелкните мышью объект, на который вы хотите сослаться. Он сгенерирует правильное короткое имя DOM для этого объекта. Если вы удерживаете Ctrl-Shift, а затем щелкаете, вы получите полный адрес DOM для этого объекта.

Например, у вас есть одностраничная форма с подчиненной формой, которая может иметь несколько экземпляров. Внутри этой подчиненной формы у вас есть раскрывающийся список «Селектор», который управляет видимостью текстового поля «Вес». Ваши адреса DOM будут выглядеть следующим образом

form1.page1.subform.Selector — это раскрывающийся список form1.page1.subform.Weight — это ваше текстовое поле

Теперь, поскольку ваш сценарий находится внутри объекта в той же подчиненной форме, в которой также находится объект, которым вы хотите управлять, вам даже не нужно обращать внимание на номера экземпляров.

В окне скрипта form1.page1.subform.Selector просто введите

if (this.rawValue == "Yes"){
Weight.presence = "visible";
}

Он будет обращаться только к тому объекту, который находится в той же подчиненной форме, что и ваш раскрывающийся контроллер.

person sergey2511    schedule 24.02.2017