2013-01-06 85 views
5

我想知道是否有一個技巧來驗證除了一個表單中的所有字段?JSF和部分驗證

喜歡的東西:

<p:remoteCommand process="@form^F100" .... /> 

顯然,這不工作...

如果我有一個表單100場,有沒有什麼辦法或快捷方式來驗證,例如所有的異常F100 ?

難道我註定要使用

<p:remoteCommand process="F1 F2 F3 F4 F5 F6 .... F99" .... /> 

+0

你有沒有試圖把它們放在兩個不同的表格中? –

+0

@Alexandre:不,但我有多個commandButton,它們驗證同一表單中的一些不同的字段,所以我只能保留1個表格 –

+0

您可以使用表單進行遊戲,並更改您的過程=「@form1 @ form2」或者只有process =「@form1 「 例如。 –

回答

13

您可以使用PrimeFaces Selectors (PFS)。這允許您使用jQuery CSS selector syntax的PrimeFaces ajax組件的processupdate屬性。例如,您可以在要跳過的組件上使用noprocess類,並使用:not(.noprocess)選擇器。

<h:form> 
    <h:inputText ... /> 
    <h:inputText ... /> 
    <h:inputText ... /> 
    ... 
    <h:inputText ... /> 
    <h:inputText ... /> 
    <h:inputText ... styleClass="noprocess" /> 
    <p:remoteCommand ... process="@(form :not(.noprocess))"/> 
</h:form> 

這個例子將處理整個形式期望的具有在客戶端class="noprocess"輸入:如下

你的特殊要求然後可以解決。

+0

這就是我所需要的!非常感謝你:) –

+0

不客氣。 – BalusC

+0

只需指定我對信息的要求:我使用p:captcha組件,reCaptcha不支持局部頁面更新,所以我不想通過Ajax刷新它,但使用'Recaptcha.reload()'方法 –