在表单生成器中捕获保存事件

时间:2014-12-22 19:12:22

标签: orbeon xbl

我希望在表单生成器中保存表单后发送提交,我最初尝试这样的事情(在我的XBL文件中):

<xf:action ev:event="fr-data-save-done" ev:observer="fr-form-model">
    <xf:message event="#all" level="modal">Saved</xf:message>
    <xf:send submission="my-submission" ev:event="#all"/>
</xf:action>

上面的代码放在xbl:template,xbl:model之外的XBL文件中(尽管我试图把它放在xbl:model中但没有运气)。 不幸的是,在我在表单生成器中保存表单后,它不起作用。 任何人都知道为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

你可以手动放置一个这样的事件处理程序:

<foo:bar id="my-component-id" bind="my-bind">
    <xf:dispatch
        event="fr-data-save-done"
        observer="fr-form-model"
        name="my-custom-event"
        targetid="my-component-id"/>
</foo:bar>

处理程序不必在元素内:

<foo:bar id="my-component-id" bind="my-bind"/>
<xf:dispatch
    event="fr-data-save-done"
    observer="fr-form-model"
    name="my-custom-event"
    targetid="my-component-id"/>

在XBL组件内部:

<xbl:binding id="my-binding-id" element="foo:bar">
    <xbl:handlers>
        <xbl:handler event="my-custom-event" phase="target">
            ... XForms actions here ...
        </xbl:handler>
    </xbl:handlers>
    ...
</xbl:binding>