2011-06-20 91 views
0

我有一個組件,我希望由用戶在每個關鍵事件上調用。當輸入字段第一次獲得焦點時防止onkeyup事件

問題是我不想在用戶第一次登錄到文本框(onfocus)時調用它。

如何在JSF/Richfaces中解決這個問題?我需要結合一些JavaScript來解決它嗎?

<h:inputText id="limit1" value="#{bean.purchaseTypeItem.subPurchaseLimit}" immediate="true"> 
    <f:converter converterId="javax.faces.BigDecimal" /> 
    <f:attribute name="fieldRef" value="Purchase Limit1" /> 
    <a4j:support event="onkeyup" ajaxSingle="true" immediate="true" requestDelay="200" 
     actionListener="#{bean.validateAmount}" ignoreDupResponses="true" reRender="main" /> 

感謝

回答

0

找到了解決辦法:

我把一張支票,以防止Ajax調用,如果用戶標籤在輸入框中射擊。 額外的a4j:支持組件的功能是在輸入框退出時允許ajax調用。

<h:inputText id="limit1" value="#{bean.purchaseTypeItem.subPurchaseLimit}" immediate="true"> 
    <f:converter converterId="javax.faces.BigDecimal" /> 
    <f:attribute name="fieldRef" value="Purchase Limit1" /> 
    <a4j:support event="onkeyup" ajaxSingle="true" immediate="true" requestDelay="200" 
     actionListener="#{bean.validateAmount}" ignoreDupResponses="true" reRender="main" 
    onsubmit="if(event.keyCode == 9){return false;}" /> 
    <a4j:support event="onblur" ajaxSingle="true" immediate="true" 
    requestDelay="200" actionListener="#{bean.validateAmount}" 
    ignoreDupResponses="true" reRender="main" /> 
0

謝謝Thomas! Richfaces 4 JSR-303(bean驗證)的解決方案版本爲...

<rich:validator event="keyup" onbeforesubmit="if(event.keyCode == 9){return false;}"/>