2012-06-27 73 views
0

我有一個JSF表單,其中有一個textarea和多個按鈕。 爲文本區我在做用F驗證:驗證僅在特定的提交按鈕上限制f:驗證器

<f:validator validatorId="myValidator" /> 
<a4j:support event="onsubmit" ajaxSingle="true" process="textarea1" /> 

驗證器工作正常。現在,我在頁面上有多個提交按鈕,我希望只在特定按鈕上進行驗證,並且應該在其餘按鈕上忽略驗證器。

是否有限制單獨的特定提交按鈕上的驗證器。謝謝。

回答

2

我假設你想要的textarea值提交到服務器上的其他按鈕點擊過當(所以沒有點與process屬性播放)

如何添加immediate="true"其他按鈕?

這樣他們就跳過驗證,而提交按鈕沒有immediate="true"會做驗證預期

或者

似乎本文JSF 2 - Conditionally Skip Validation

喜歡的東西

<h:commandButton action="#{bean.someMethod"} value="Submit2"> 
    <f:param name="skipValidation" value="true"/> 
</h:commandButton> 
在另一個解決辦法

和裏面的validate方法的validat或檢查skipValidation attirbute(在文章中尋找進一步的解釋...)

2

您可以使用disabled屬性。

<f:validator validatorId="myValidator" disabled="#{empty param['formId:buttonId']}" /> 

哪裏formId是你<h:form>的ID和buttonId是被認爲是觸發驗證的唯一按鍵按鈕的ID。