我们正在从 JSF 1.2 迁移到 JSF 2.2.6 以及 RichFaces 4.5.2。面临
oncomplete
未接到电话的问题。 onclick
期间的JS函数被调用,但oncomplete
期间的JS没有被调用。这是怎么造成的以及如何解决?
<h:commandLink ... onclick="ed();" oncomplete="cEd(#{rowIndex});">
<h:commandLink>
。您很可能对 RichFaces <a4j:commandLink>
感到困惑,其中 确实具有该属性,甚至 PrimeFaces <p:commandLink>
也具有该属性。 <xxx:commandButton>
兄弟也是如此。
你基本上有 2 个选择:
只需将
<h:commandLink>
替换为 <a4j:commandLink>
或 <p:commandLink>
。
<a4j:commandLink ... oncomplete="oncompleteFunction()" />
<p:commandLink ... oncomplete="oncompleteFunction()" />
将
<f:ajax>
与事件处理程序嵌套在 <h:commandLink>
中。
<h:commandLink ...>
<f:ajax onevent="oneventFunction" /><!-- No parenthesis! -->
</h:commandLink>
function oneventFunction(data) {
if (data.status === "success") {
oncompleteFunction();
}
}
总结:只需阅读标签文档即可。链接位于上面第一段。