2014-02-14 116 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