客户端验证和工具提示

时间:2014-02-14 08:34:33

标签: jsf-2 primefaces

我在表单上有jsf验证,其中基于

突出显示无效字段
styleClass="#{component.valid ? 'reportInput' : 'reportInput_invalid'}"

并且工具提示用于显示错误消息,如下所示

<p:tooltip for="inputFieldId">
    <p:message for="inputFieldId" />
</p:tooltip>

一切都按预期工作,但我想改善用户体验,并希望使用

引入纯客户端验证
<p:clientValidator />

我试过这个但是当在输入字段上触发onBlur事件时它没有用到我得到了以下JS错误

'null' is Null or no Object
in validation.js.jsf and the line code is
d.data("uiMessageId",b.attr("id"))

有可能实现吗?

我输入字段的一个示例是:

<p:inputText id="bic" 
styleClass="#{component.valid ? 'reportInput' : 'reportInput_invalid'}" 
value="#{bean.bic}" 
required="true" requiredMessage="Field value is required" >
    <p:watermark for="bic" value="CMHJKLIL" />
    <pe:keyFilter regEx="/[a-z0-9]/i" />
    <f:validateLength minimum="8" />
    <p:clientValidator/>
</p:inputText>

我正在使用具有以下maven依赖性的Primefaces 4

 <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <version>4.0</version>
    </dependency>

这里看起来像jsf页头部分 enter image description here

这是正在使用的validation.js文件 validatuion.js here

1 个答案:

答案 0 :(得分:0)

我有完全相同的错误。

似乎validator.js代码搜索附加到该字段的消息容器,并且,如果找不到它,则以最近的形式“e.findUIMessage(a,d.closest(”form“))搜索一个.find( “div.ui消息”))“

你需要的是有一个标签, 也就是说,为inputtext分配的消息,因此,当验证器生成错误时,它可以在该消息容器中发布文本。