我使用的是Orbeon Forms,我想在div
或span
(或任何非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。
答案 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
。