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

Mut*_*man 1 javascript ajax listener jsf-2

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

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

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

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

Bal*_*usC 5

onevent属性必须指定JS函数引用名称,而不是整个JS脚本.正确使用onevent属性是

<f:ajax ... onevent="functionName" />
Run Code Online (Sandbox Code Playgroud)

(是的,没有括号!)

function functionName(data) {
    alert(data.status); // Will show 3 times.
}
Run Code Online (Sandbox Code Playgroud)

但是,对于您的想法,它显然是错误的工具.所述onevent应该仅引用一个侦听功能这将被调用3次:一个发送Ajax请求之前,一个所述AJAX响应到达后,一个接一个HTML DOM是基于Ajax响应更新之后.有关正确的实际使用示例,请参阅ajax调用<f:ajax>禁用/启用ajax事件命令按钮之后的Proccess onclick函数.

只需使用父组件的onXXX属性,而不是(这里XXX正是<f:ajax event>你想勾上).例如,这是一个<h:inputText>:

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