2011-09-14 1 views
1

Orbeonフォームを使用していて、divまたはspan(またはxforms:outputなどの非Xタグ)で動的クラス名を設定して、そのCSSクラスで設定することができます。Orbeonフォームで動的クラス名を受け入れるために使用できるHTMLタグ

<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'}" /> 

私はコントロールのグループは、そのクラスのCSSをたどるように、動的にクラス名を割り当てるために使用できるHTMLタグをお知らせください。

答えて

3

{...XPath...}構文を使用し、これらの表現はattribute value templates(AVT)と呼ばれ、Orbeonフォームはclassstyle含め、XFormsの属性とHTML属性の数にそれらをサポートしています。上のコードがうまくいくはずです。

divがXHTML名前空間にないため、AVTが解釈されないことがあります。私のお勧めは、常にあなたの要素に接頭辞を使用することです。ルート要素にxmlns:xhtml="http://www.w3.org/1999/xhtml"を定義し、divの代わりにxhtml:divを使用します。これがあまりにも不便な場合は、XHTML名前空間がルート要素に宣言されているデフォルトの名前空間として、xmlns="http://www.w3.org/1999/xhtml"であることを確認してください。

+0

そうです。私はxhtml名前空間を追加するときに動作しています。優れた答え。どうもありがとう。 – Jayy

+0

パーフェクト、これを確認していただきありがとうございます。 – avernet

関連する問題