Fire f:仅在特定键上使用ajax

时间:2014-02-18 14:04:03

标签: jquery ajax jsf delay jsf-2.2

我在f:ajax内使用h:inputText来调用基于输入执行搜索的辅助bean方法,但有一个延迟:

<h:inputText
    ...>
    <f:ajax 
        delay="500" 
        event="keyup"
        listener="#{cc.attrs.completeMethod}"
        onevent="function(data){mx.util.onComplete(data, mx.ezOverlay.handle)}" />
</h:inputText>

现在我想以某种方式不发送每个密钥的请求 - 特别是不是箭头键,我用它来导航下拉列表中的结果。

我知道如何通过将jQuery事件侦听器绑定到输入,手动检查使用了哪个键并在与PrimeFaces RemoteCommand的音乐会上设置计时器来处理延迟和调用方法。

我的问题是,是否有办法避免发送某些密钥的Ajax请求,例如SHIFT,CTRL和ARROW键;使用f:ajax时。或者可能有更好的方法来处理延迟(目标是不将每次按键发送到支持bean - >不是每次按键都搜索数据库。)

1 个答案:

答案 0 :(得分:0)

旧帖子,但仍指向此问题的现有答案(链接如下):

Catch KeyCode in AjaxBehaviorEvent of JSF 2

希望这有帮助。