相关疑难解决方法(0)

如何延迟.keyup()处理程序直到用户停止输入?

我有一个搜索领域.现在它搜索每个keyup.因此,如果有人键入"Windows",它将使用AJAX搜索每个键盘:"W","Wi","Win","Wind","Windo","Window","Windows".

我希望有一个延迟,所以它只在用户停止键入200毫秒时搜索.

在函数中没有这个选项keyup,我试过了setTimeout,但它没有用.

我怎样才能做到这一点?

javascript jquery

618
推荐指数
12
解决办法
25万
查看次数

使用PrimeFaces <p:ajax>,仅在更改字段的击键时触发inputText中的Ajax

我正在使用PrimeFaces并且有一个p:inputText字段,我需要根据p:inputText中的最新按键更新视图上的一些组件.这是代码:

<p:inputText value="#{customerLController.surnameFilterConstraint}"
             id="surnamefilterfield">
    <p:ajax event="keyup" 
            update=":custForm:custDataTable"
            listener="#{customerLController.focusSurname}"
            oncomplete="primeFacesId('surnamefilterfield')"/>
</p:inputText>
Run Code Online (Sandbox Code Playgroud)

问题是,即使在箭头键击的情况下,上面的代码也会激活Ajax(考虑到代价高昂的更新,我宁愿避免使用).理想情况下,我想要一个不同版本的p:ajax event ="change",其条件是更改在击键时发音,而不是在用户点击Enter时(现在发生的事情).

如果p:ajax组件不允许某种方法过滤掉某些keyup事件,那么我认为唯一的(?)替代方法是在客户端调用JavaScript然后在Javascript中实现Ajax调用但是我会放弃使用PrimeFaces p:ajax组件的便利性,不是吗?

javascript ajax primefaces

6
推荐指数
1
解决办法
8342
查看次数

JSF ajax事件延迟

我想为JSF 2的列表实现一个实时过滤器,但是当使用keyup事件时,很多请求都被发送到服务器.代码如下:

<h:inputText id="filter_input" value="#{bean.filterText}">
    <f:ajax event="keyup" listener="#{bean.filter}" 
        render="@form:list" execute="@this" />
</h:inputText>
Run Code Online (Sandbox Code Playgroud)

jsf jsf-2

4
推荐指数
1
解决办法
4510
查看次数

标签 统计

javascript ×2

ajax ×1

jquery ×1

jsf ×1

jsf-2 ×1

primefaces ×1