2017-01-12 11 views
2

私は編集可能なフィールドのカスタムコントロールを持っており、検証はjava beanを介して行われます。私はそうのように、ブートストラップスタイルを設定するためにはisValid()プロパティを設定する:Xpages:カスタムコントロールの複数インスタンスでのJava Beanを使用したバリデーション

enter image description here

私は、コンポーネントの上で探していますので、私は、複数回ページにCCを配置する場合ただし、これは動作しません。 IDを使用してValidプロパティを設定します。

CCのフィールドのIDを計算するか、またはpost describesのような何かを行う必要があります。

私はそうのように、私は、テキストフィールドのIDを計算することができると信じて:

<xp:inputText 
       id="${javascript:compositeData.fieldName}" 
       type="text" 
       loaded="${!empty compositeData.placeholder}" 
       required="${compositeData.required}" 
       disableClientSideValidation="true"> 
       <xp:this.attrs> 
        <xp:attr 
         name="placeholder" 
         value="${compositeData.placeholder}" /> 
       </xp:this.attrs> 
       <xp:this.binding><![CDATA[#{javascript:compositeData.dataSource[compositeData.fieldName]}]]></xp:this.binding> 
      </xp:inputText> 

は、しかし、そのよう

<xp:this.styleClass><![CDATA[#{javascript:"form-group" + (getComponent("inputText1").isValid() ? "" : " has-error")}]]></xp:this.styleClass> 

私はのように私はコンポーネントを計算する必要があるいくつかの場所が存在します"inputText1"を計算されたIDに置き換える必要がありますが、その方法を理解することはできません。

もっと良い/簡単な方法がありますか?

答えて

5

idを参照するたびにcompositeData.fieldNameを使用しないのはなぜですか?

<xp:this.styleClass><![CDATA[#{javascript:"form-group" + (getComponent(compositeData.fieldName).isValid() ? "" : " has-error")}]]></xp:this.styleClass> 
+1

Howard、それはまさに私がやろうとしていたが、文法を正しく理解できなかった。ご回答有難うございます! –

関連する問題