2011-04-21 115 views
0

我開始瞭解JSF,並且我已經能夠添加一些標準的驗證器,這些驗證器出現在我已經定義的消息中,但他們只驗證當我點擊按鈕提交表單時,需要驗證的組件是in。我希望這些組件在我點擊它們之外(例如使用onblur)時已經被驗證,但是我不知道我需要在onblur屬性中調用哪個方法執行該元素的驗證器?我在這一刻的代碼是:攔截JSF驗證

<h:form> 
    <h:outputText value="#{msgs.name}"/><br/> 
    <h:inputText id="name" value="#{user.name}" label="#{msgs.name}" required="true" requiredMessage="#{msgs.name_required}"/> 
<h:message for="name" styleClass="error_single_message"/> 
    <br/><br/> 

    <h:outputText value="#{msgs.password}"/><br/> 
    <h:inputText id="password" value="#{user.password}" label="#{msgs.password}" required="true" requiredMessage="#{msgs.password_required}"/> 
    <h:message for="password" styleClass="error_single_message"/> 
    <br/><br/> 

    <div class="error_overview_messages">Overview errors 
    <h:messages showDetail="#{true}" showSummary="#{false}"/> 
    </div><br/> 

    <h:commandButton value="Log_on" action="logged_in"/> 
</h:form> 

+1

請參閱http://stackoverflow.com/questions/4013410/jsf2-validation-clientside-or-serverside – Adam 2011-04-21 09:28:07

+0

JSF 1.x或2.x? – BalusC 2011-04-21 10:57:07

回答

0

JSF驗證發生服務器端,所以你基本上是需要有一個提交觸發有服務器端代碼激活。

如果您對此不感興趣,則需要激活一些特定的Java腳本。

0

如果您正在使用JSF2,你可以完成你在找什麼,加入RichFaces的到您的構建和使用RichFaces的客戶端驗證:

Richfaces Client Side Validation

正是在他們的V4版本一個偉大的新功能它將標準的jsf驗證器和JSR-303 bean驗證編譯爲可以在客戶端執行的javascript。你可以在任何標準的JavaScript事件(模糊,點擊,鍵盤)上觸發驗證。