2014-02-14 73 views
1

我具有其中无效字段基于客户端验证和工具提示

styleClass="#{component.valid ? 'reportInput' : 'reportInput_invalid'}" 

上突出形式JSF验证和工具提示被用于如下

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

一切显示错误消息按预期工作,但我想改善用户体验,并希望引入纯粹的客户端验证使用

<p:clientValidator /> 

我尝试这样做,但是当onBlur事件上inputfield解雇我得到了以下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> 

我使用Primefaces 4以下Maven依赖

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

这里,因为它看起来在JSF页面头部部分 enter image description here

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

+0

请显示您使用''的代码。没有代码,我们无法帮助你进一步。 –

+0

我已经添加了一个输入字段的代码。 – user3027786

+0

您正在使用''但我没有看到任何'mask'属性。 您确定要使用''而不是''吗? **编辑**:我认为你已经做出了改变。 –

回答

0

我有完全相同的错误。

似乎为附接至字段的消息容器中,并且,如果不能找到一个validator.js代码搜索,它搜索一个在最近的形式“e.findUIMessage(一个,d.closest(”形式” ).find(“div.ui消息”))”

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

+0

作为一个例子: Javier