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 回答