已调度xforms-ready但未触发操作

时间:2010-12-29 11:21:46

标签: orbeon

我在基于xforms的表单中有以下代码:

<!--<xforms:action ev:event="xforms-select" target="retrievalControl-control">-->
    <xforms:action ev:event="xforms-ready" target="fr-form-model">
<xforms:send submission="loadConfiguration"/>
    </xforms:action>

如果我取消注释上面的注释行(并注释掉包含xforms-ready的行),我会得到预期的结果(即,在选择目标控件时调用提交),但如果我保持上面的代码为是的,那么我可以在日志中看到xforms-ready事件已经为所声明的模型触发了,但是这个提交没有被调用。提交实际上是在正确的位置定义的(即,所引用的模型,实际上是我基于xform格式定义的唯一模型)

提交这个模型的xforms-ready之后没有被调用的原因是什么?

2 个答案:

答案 0 :(得分:1)

xforms-ready事件分派给模型,因此您可以:

  • 将事件处理程序放在模型中,如您在自己的答案中所述。
  • 将其放置在其他位置,但添加属性ev:observer="fr-form-model",假设您的模型的ID为fr-form-model。 (您还可以找到有关ev:observer and ev:target attributes的更多信息。)

答案 1 :(得分:0)

通过将上面的代码片段移动到模型本身而不是其他地方解决了这个问题(早先在xhtml体中出现,而模型是在xhtml头部)。下面提到的也可以放在模型中:

<xforms:action ev:event="xforms-ready">
    <xforms:send submission="loadConfiguration"/>
</xforms:action>

<xforms:send ev:event="xforms-ready" submission="loadConfiguration" />