我有一个我想在表单处理之后但在更新(渲染)之前运行自定义验证功能的地方。如果我使用 oncomplete 显然更新是在验证之前执行的。如果我使用 onclick 则在表单处理之前进行验证,这又不适合我,因为我没有要验证的值。有没有办法在处理之后但在更新之前执行该功能?
<p:commandButton process="@form" update="@form" actionListener="#{bean.method}" oncomplete="validate()"/>
我有一个我想在表单处理之后但在更新(渲染)之前运行自定义验证功能的地方。如果我使用 oncomplete 显然更新是在验证之前执行的。如果我使用 onclick 则在表单处理之前进行验证,这又不适合我,因为我没有要验证的值。有没有办法在处理之后但在更新之前执行该功能?
<p:commandButton process="@form" update="@form" actionListener="#{bean.method}" oncomplete="validate()"/>
在这种情况下,请始终查看文档。具体来说,关于 ajax 相关的 JavaScript 函数<p:commandButton>
,文档指出:
onstart
:在ajax请求开始之前执行的客户端回调;onsuccess
: ajax请求成功时执行的客户端回调;oncomplete
: ajax 请求完成时执行的客户端回调。注意有onerror
回调:当ajax请求失败时要执行的客户端回调。
正如您从这些摘录中可以理解的那样,回调的连续性正如答案中所呈现的那样。选择适合您需求的那一款。
此外,了解JSF 生命周期是明智的。