该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>