1

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

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

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

那么我如何确定返回值并基于lister方法应该触发。在此先感谢:)

4

1 回答 1

5

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

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

(是的,没有括号!)

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

但是,对于您的预期目的,这显然是错误的工具。onevent应该只引用一个侦听器函数,该函数将被调用 3 次:一次在发送 ajax 请求之前,一次在 ajax 响应到达之后,一次在基于 ajax 响应更新 HTML DOM 之后。有关正确的真实世界使用示例,请参阅在ajax 调用 <f:ajax>和禁用/启用 ajax 事件上的命令按钮后处理 onclick 函数等。

只需使用父组件的onXXX属性(您想挂在哪里)XXX<f:ajax event>例如假设它是一个<h:inputText>

<h:inputText ... onkeyup="return validatePageNumber(event)">
     <f:ajax event="keyup" render="@form" />
</h:inputText>
于 2013-02-26T15:23:00.580 回答