发生验证错误时,在JSF中突出显示inputText

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了发生验证错误时,在JSF中突出显示inputText相关的知识,希望对你有一定的参考价值。

我有一个包含大量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>

这是结果:

请注意,第一次加载页面时,该字段也会突出显示。

答案

你应该使用component.valid而不是nom.valid

component是当前输入组件的隐式EL对象。并且component.valid调用服务器端组件的isValid()方法。 id参数不能以这种方式使用。

因此,您应该按如下方式更改代码:

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

(不相关,但你应该更好地使用样式类而不是硬编码样式。有效检查也适用于styleClass属性)。

以上是关于发生验证错误时,在JSF中突出显示inputText的主要内容,如果未能解决你的问题,请参考以下文章

JSF / PrimeFaces - 如何显示自定义验证器的消息,但不显示同一组件上的必需验证

在extjs中显示服务器端验证错误

配置到jsf中的错误页面时出错?

在记事本++中突出显示xml验证错误

如何在 Rails 验证错误中突出显示字段

具有渲染属性的jsf组件验证失败