可以使用哪个HTML标记来接受Orbeon Forms中的动态类名

时间:2011-09-14 11:40:05

标签: orbeon xforms

我使用的是Orbeon Forms,我想在divspan(或任何非XForms标签,如xforms:output)上设置动态类名,以便控件组可以用那个CSS类设置。

<div class="color-with-{if(/fetch/data1='Yes') then 'green' else 'red'}">

但这不起作用。当我在渲染表单后查看HTML源代码时,它似乎没有处理该动态部分。

<div class="color-with-{if(/fetch/data1='Yes') then 'green' else 'red'}"
    id="xf-279">

然而,这种动态分配对Orbeon标签非常有用。

<xforms:output value="if ((xxforms:valid(instance('account-opening-setup'),true())) 
        and (xxforms:valid(instance('form-variables'),true())))
        then 'Complete' else 'Incomplete'" 
    class="validation-{if ((xxforms:valid(instance('account-opening-setup'),true())) 
        and (xxforms:valid(instance('form-variables'),true()))) then 'complete' 
        else 'incomplete'}" />

请告知我可以使用哪个HTML标记动态分配一个类名,以便该组控件遵循该类CSS。

1 个答案:

答案 0 :(得分:3)

使用{...XPath...}语法的表达式称为attribute value templates(AVT),Orbeon Forms在许多XForms属性和HTML属性中支持它们,包括class和{{1 }}。所以上面的代码应该正常工作。

可能是因为您的style不在XHTML名称空间中而未解释AVT。我的建议是始终在元素上使用前缀。在根元素上定义div,然后使用xmlns:xhtml="http://www.w3.org/1999/xhtml"代替xhtml:div。如果您觉得这太不方便,请确保将XHTML命名空间作为在根元素上声明的默认命名空间,并使用div