10

inputTextがたくさんあるフォームがあります。正しいデータが入力されていない人を強調表示したいのですが、

'component.valid'を使用しようとしましたが、フィールドが無効であることが常に返されます(つまり、フィールドは常に赤です)。

これはコードです:

<h:inputText value="#{creerPersonne1.nom}" id="nom" 
    style="#{not nom.valid ? 'border-color:red;' : 'border-color:black;'}">
    <f:validateRegex pattern="^[a-zA-Z]+$"></f:validateRegex>
</h:inputText>

これが結果です:

常に無効

ページが初めて読み込まれるときにも、フィールドが強調表示されることに注意してください。

4

1 に答える 1

23

component.validの代わりに使用する必要がありnom.validます。

component現在の入力コンポーネントの暗黙的な EL オブジェクトです。そして、サーバー側コンポーネントcomponent.validのメソッドを呼び出します。isValid()引数をこのidように使用することはできません。

したがって、次のようにコードを変更する必要があります。

style="#{ component.valid ? 'border-color:black;' : 'border-color:red;'}"

(関係ありませんが、ハード コードされたスタイルではなく、スタイル クラスを使用することをお勧めします。有効なチェックは、styleClass属性に対しても機能します)。

于 2012-06-12T09:28:26.393 に答える