2015-10-27 5 views
0

В настоящее время в Orbeon Forms, когда вы определяете Orbeon Действие, который бы (например) реагируют на значение изменяется на форму, вы можете указать, какие Служба выполняет вызов Action при предоставлении некоторых входных параметров. Кроме того, вы можете указать, что вы хотите сделать с ответом службы и тем, как вы хотите использовать полученные данные, например. возможно, заполнить другое поле формы.Orbeon формы - как изменить поведение по умолчанию Orbeon действий

У меня есть ситуации, когда Orbeon форма используется как часть Hybris Commerce Suite, и мне нужно, чтобы вызвать вызов службы после того, как некоторые поля меняются, а затем выполнить логику на стороне сервера и перезарядку оригинала страница (где находится форма). Начиная с Orbeon Builder не предлагает мне эту функциональность, можете ли вы дать мне несколько советов/материалов о том, как это можно достичь?

Другими словами, могу ли я переопределить функциональные возможности Orbeon Builder по умолчанию, чтобы позволить мне перезагрузить страницу при получении ответа с сервера? Если бы я использовал обычные HTML-формы с JS/JQuery, это не было бы проблемой, я просто не знаю, как Орбеон справляется с этим.

Заранее спасибо

+0

Просто чтобы уточнить: вы уверены, что хотите, чтобы вызов службы и перезагрузка страницы произошли, когда пользователь изменил значение? Вы не хотите, чтобы пользователи нажимали кнопку, чтобы вызвать это действие? Я спрашиваю, как необычно перемещаться от текущей страницы, даже если это просто перезагрузка, когда пользователи просто изменяют значение в поле. – avernet

+0

И в случае, если вы задаетесь вопросом, вот где я собираюсь: я предлагаю вам определить процесс, который делает то, что вы описали, и привязан к кнопке внизу формы. В этом процессе вы должны использовать действие 'send()' и 'navigate()'. http://doc.orbeon.com/form-runner/advanced/buttons-and-processes.html – avernet

+0

@avernet Фактически, мне нужно перезагрузить часть страницы после того, как пользователь изменит входные значения в форме Orbeon. Эта часть страницы, которую необходимо перезагрузить **, не является частью формы ** (на странице, помимо формы Orbeon, у меня есть отдельный раздел, отображающий некоторые данные, рассчитанные на стороне сервера, на которые влияет пользовательский ввод). Эта серверная логика запускается, когда изменяются разные поля формы, и из-за этого динамического поведения (и поскольку это требование клиента), я не могу использовать кнопку для ее запуска. Спасибо, я проверю ссылку, но я не уверен, что она будет работать для этого случая. – lazard

ответ

0

Предполагая, что вы используете Form Builder services и actions, чтобы плагин свой собственный JavaScript после службы побежал в Form Builder, edit the source of the form, и добавьте следующее перед </xf:model>:

<xxf:script observer="my-service-submission" 
    ev:event="xforms-submit-done">alert('gaga');</xxf:script>. 

В атрибуте observer замените my-service на имя, которое вы указали на услугу (сохраняя суффикс -submission). И, конечно же, замените alert('gaga') на фактический код JavaScript, который вы хотите запустить.

Смежные вопросы