【问题标题】:Prevent onkeyup event when input field first gets focus当输入字段首次获得焦点时防止 onkeyup 事件
【发布时间】:2011-09-18 20:50:00
【问题描述】:

我有一个组件,我希望用户在每个 keyup 事件上调用它。

问题是我不想在用户第一次进入文本框 (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"  />

【问题讨论】:

    标签: javascript jsf dom-events richfaces


    【解决方案1】:

    找到解决办法:

    如果用户选择进入输入框,我会检查以防止 ajax 调用触发。 添加额外的 a4j:support 组件是为了在跳出输入框时允许 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" />
    

    【讨论】:

      【解决方案2】:

      谢谢托马斯!您自己的richfaces 4 JSR-303(bean 验证)解决方案的版本是...

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-05
        • 2011-08-29
        • 2022-01-01
        • 1970-01-01
        • 2013-11-26
        • 1970-01-01
        • 2014-10-27
        • 2011-04-13
        相关资源
        最近更新 更多