Как установить выбранное значение раскрывающегося списка в Orbeon Forms с помощью Javascript?

Мне нужно установить выбранное значение раскрывающегося списка в форме Orbeon с помощью Javascript, передав ЗНАЧЕНИЕ (не позицию) требуемой опции.

Для простых элементов управления (текстовых полей) из документации я могу:

ORBEON.xforms.Document.setValue((ORBEON.jQuery('*[id $= "CONTROLID-control"]')).attr('id'), "NEWVALUE")

А также из документации я могу получить выбранное значение раскрывающегося списка, используя это:

ORBEON.xforms.Document.getValue(ORBEON.jQuery(ORBEON.jQuery('*[id $= "DROPDOWNID-control"]')[0]).find('.xforms-select1')[0])

Фактически, этот код извлекает позицию в раскрывающемся списке выбранного значения, например «5». Но в любом случае я не смог найти способ установить выбранное значение в раскрывающемся списке с помощью VALUE, а не POSITION.

Я создал свою форму с помощью Form Builder, и мое раскрывающееся меню предварительно заполнено с помощью действия и службы HTTP. Это мое действие по заполнению:

https://ibb.co/JsH635s

Поэтому я хотел бы передать ИМЯ (значение, НЕ Позиция в раскрывающемся списке) элементу управления селектором, чтобы установить его как выбранное значение.

Что-то вроде этого:

ORBEON.xforms.Document.setValue ((ORBEON.jQuery ('* [id $ = "local-branch-control"]') [0]), «МОЕ ЗНАЧЕНИЕ»)

Я пробовал разные комбинации, но ни одна из них не сработала. Возможно ли это вообще в Орбеоне?

Спасибо


person David Levy    schedule 08.10.2019    source источник
comment
Не знаком с ORBEON, но, поскольку вы можете перейти к элементу select, можете ли вы выполнить jQuery дальше к параметрам в выбранном элементе? jQuery o$Opts=$("#mySelect:options) предоставит вам массив со всеми параметрами, и вы сможете просмотреть их for(var i=0;i<o$Opts.length;i++){if(o$Opts[i].text()=="valueYouWantSetAsSelected"){o$Opts[i].selected=true;break;}}   -  person gordon    schedule 09.10.2019
comment
Да, я пробовал это, и это работает: `` `` $ (select [id * = 'CONTAIN-ID'] option: contains (MYVALUE)). Attr ('selected', 'selected') `` ``, но изменив его, используя простой JS / Jquery не обновляет модель Orbeon, поэтому мне нужен способ выбора параметра с помощью ORBEON.xforms.Document.setValue   -  person David Levy    schedule 09.10.2019
comment
Значит, нет возможности взаимодействовать с ORBEON из jQuery? Фу. Итак, если цикл прерывается при выборе варианта с именем, тогда i - это позиция, верно? ORBEON не позволяет установить выделенное, передав его i?   -  person gordon    schedule 17.10.2019


Ответы (1)


Разобрался, вот что сделал:

myInitialValue = ORBEON.jQuery("select[id*='my-select-control'] option:contains(" + myInitialDisplayName + ")")[0].value; 

ORBEON.xforms.Document.setValue(ORBEON.jQuery(ORBEON.jQuery('*[id $= "my-select-control"]')[0]).find('.xforms-select1')[0], myInitialValue);
person David Levy    schedule 09.10.2019