ajax基于onevent返回值限制侦听器方法调用

f:ajax restricting the listener method call based on onevent return value

本文关键字:侦听器 方法 调用 基于 onevent 返回值 ajax      更新时间:2023-09-26

如何检查Onevent javascript函数是否返回true或False ?因为基本上我要做的是根据Javascript返回值来限制侦听器方法调用。

以下代码在Firebug中返回语法错误。

 <f:ajax event="keyup" render="@form" onevent="return validatePageNumber(event);" listener="#{bean.listenerMethod}"/>

那么我如何确定返回值,并基于该列表方法应该触发。提前感谢:)

onevent属性必须指定JS函数引用名,而不是整个JS脚本。onevent属性的正确用法是

<f:ajax ... onevent="functionName" />

(是的,没有括号!)

function functionName(data) {
    alert(data.status); // Will show 3 times.
}

然而,对于您心目中的目的来说,它显然是错误的工具。onevent应该仅仅引用一个监听器函数,该函数将被调用3次:一次在ajax请求发送之前,一次在ajax响应到达之后,一次在HTML DOM基于ajax响应更新之后。有关真实世界的正确使用示例,请参阅ajax调用后的process onclick函数和禁用/启用ajax事件命令按钮。

只使用父组件的onXXX属性代替(其中XXX正是您想要挂钩的<f:ajax event>)。例如,假设它是一个<h:inputText>:

<h:inputText ... onkeyup="return validatePageNumber(event)">
     <f:ajax event="keyup" render="@form" />
</h:inputText>