【问题标题】:Orbeon Form Builder - Referring to a control within a Section TemplateOrbeon 表单生成器 - 引用部分模板中的控件
【发布时间】:2011-11-27 06:32:30
【问题描述】:

我有许多表格都引用了“标题”部分模板。我想从表单中的另一个控件引用本节模板中的一个控件。 (使用这里显示的方法:Write constraint to validate a field based on the value entered in another field in Orbeon Form Builder

当我尝试在节模板中引用名为“节”的控件时出现以下错误:

独立表达式中未声明的变量:$section

这是我正在使用的 XPath 表达式:

if($section = 'PKP' or $section = '') then true() else false()

Section Template 中有一个名为“section”的控件,但似乎无法从表单的其余部分访问它。

有谁知道是否可以引用 Orbeon 表单构建器中“部分模板”中的控件?

【问题讨论】:

    标签: orbeon xforms


    【解决方案1】:

    如您所见,假设字段名称为gaga,您无法使用名为$gaga 访问该部分之外的部分模板字段的值。这是因为您的表单中可能有同一个部分模板的多个“实例”。假设您有一个“地址”部分模板,并在“帐单地址”和“送货地址”的表单中插入两次。然后,如果在这些部分模板之外使用 $city,您将不知道它是指帐单地址还是送货地址中的 City 字段。

    相反,在将部分模板添加到表单时,您需要为这些部分指定一个名称(例如 billing-address)并使用 XPath 表达式(例如 /form/billing-address/city)来引用帐单地址。

    【讨论】:

      【解决方案2】:

      我没有使用Form builder来开发表单,但是根据错误,看看是否有$section的变量声明代码。任何以 $ 开头的都表示变量,因此需要变量声明。如果声明了一个变量,则相应的行可能看起来像这样

      <xxforms:variable name="section" select="<some_xpath_expression_here>" />
      

      如果您不想使用变量,请尝试使用节点集进行引用。假设“section”在“my-instance”模型实例中,您可以像这样编写节点集。

      if(instance('my-instance')/section = 'PKP' or instance('my-instance')/section = '') then true() else false()
      

      【讨论】:

        猜你喜欢
        • 2021-05-27
        • 2021-05-30
        • 1970-01-01
        • 1970-01-01
        • 2015-11-17
        • 1970-01-01
        • 2013-07-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多