【问题标题】:Highlight an inputText in JSF when a validation error occurs发生验证错误时突出显示 JSF 中的 inputText
【发布时间】:2012-06-12 09:12:35
【问题描述】:

我有一个包含很多 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.valid吗?

标签: jsf jsf-2


【解决方案1】:

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

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

所以你应该改变你的代码如下:

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

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

【讨论】:

  • 确实,我认为该组件必须替换为组件的实际 ID:/ 谢谢。
  • 顺便说一句,我刚刚学会了没有依赖“hibernate-validator”的那些将无法工作的艰难方法
猜你喜欢
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 2012-04-13
  • 2012-10-03
  • 2012-06-26
  • 1970-01-01
相关资源
最近更新 更多