2011-09-14 52 views
1

我使用Orbeon Forms,並且我想在divspan(或任何非XForms標籤,如xforms:output)上設置一個動態類名稱,以便該組控件可以使用該CSS類進行設置。哪個HTML標籤可以用來接受Orbeon Forms中的動態類名稱

<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。

回答

3

使用該{...XPath...}語法那些表達被稱爲attribute value templates(AVT),和Orbeon形式支持它們在許多的XForms屬性和HTML屬性,包括classstyle。所以你上面的代碼應該工作。

可能是因爲您的div不在XHTML名稱空間中,AVT未被解釋。我的建議是始終在您的元素上使用前綴。定義根元素上的xmlns:xhtml="http://www.w3.org/1999/xhtml",然後使用xhtml:div而不是div。如果您覺得這太不方便,請確保將XHTML名稱空間作爲在根元素上聲明的默認名稱空間,並使用xmlns="http://www.w3.org/1999/xhtml"

+0

是的,這是真的。當我添加xhtml命名空間時它正在工作。優秀的答案。非常感謝。 – Jayy

+0

完美,謝謝您確認此作品。 – avernet

相關問題