繁体   English   中英

当输入字段第一次获得焦点时防止 onkeyup 事件

[英]Prevent onkeyup event when input field first gets focus

我有一个组件,我想在用户的每个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"  />

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

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

找到了解决办法:

如果用户按标签进入输入框,我会检查以防止触发 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" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM