2011-12-15 115 views
3

我有一個使用Primefaces 3.0M4組件庫的JSF 2.0應用程序。我有以下輸入:JSF - 驗證失敗的焦點組件

<p:inputText id="input" value="#{bean.value}" required="true"> 
     <p:ajax event="blur" update="msg" /> 
</p:inputText> 
<p:message id="msg" for="input" /> 

什麼,我想要做的是,在情況下,驗證失敗(值爲空),焦點返回到組件,強迫用戶輸入一個值。這可能嗎? 另外我希望當用戶點擊提交按鈕;如果驗證在那裏失敗,則第一個未通過驗證的組件將被重點關注。

謝謝,
達米安

回答

2

這是可能的,客戶端,通過使用requiredrequiredMessage屬性。用戶不能提交表單,並顯示一個錯誤信息:

<h:outputLabel for="firstname" value="Firstname: *" /> 
     <p:inputText id="firstname" 
       value="#{personBean.firstname}" 
       required="true" requiredMessage="You have to enter your name" label="Firstname"> 
      <f:validateLength minimum="2" /> 
     </p:inputText> 
     <p:message for="firstname" /> 

你可以使用primefaces message如果你不使用requiredMessage屬性,因爲它會顯示兩個警告信息,這是一個有點怪..

焦點取決於...如果您有兩個inputTexts,該怎麼辦?你想只顯示第一個焦點嗎? 你可以在這裏看到一個演示:http://www.primefaces.org/showcase-labs/ui/pprAjaxStatusScript.jsf

+0

謝謝@spauny第一部分已經工作,我的問題是關於焦點。 catagay civici的答案是正確的做法。 – Damian 2011-12-16 15:38:14