关于 oncomplete 脚本的 Richfaces 验证错误

jre*_*rey 0 richfaces jsf-2

我有jsfunction

<a4j:jsFunction action="#{myBean.action}"
  data="#{myBean.data}" render="@form" execute="@form" name="openConfirm"  
onbeforedomupdate="openConfirmDialog(event.data);"></a4j:jsFunction>
Run Code Online (Sandbox Code Playgroud)

我需要打开一个确认对话框(在 onbeforedomupdate 上,这有效..但是打开所有调用的对话框)我真的需要只有在验证 jsf 提交时才打开对话框表单。验证错误显示表单未验证的时间。

在脚本中识别 JSF 循环是否返回验证错误的最佳方法是什么?

我需要类似于 onbeforedomupdate="if (event.validationError==false)showDialog();"

多谢,

Vas*_*ach 5

您可以像这样检查错误

if (#{facesContext.maximumSeverity == null}) { openConfirmDialog(event.data); }
Run Code Online (Sandbox Code Playgroud)

如果您有超过 1 种类型的消息(错误、警告、信息),您可以使用

if (#{empty facesContext.messageList}) { openConfirmDialog(event.data); }
Run Code Online (Sandbox Code Playgroud)

用于在显示对话框之前检查验证消息。

用法示例oncomplete

oncomplete="if (#{facesContext.maximumSeverity == null}) {#{rich:component('popup')}.show();}"
Run Code Online (Sandbox Code Playgroud)

如果您想对警告和错误做出反应,但不想对信息消息做出反应,请使用

oncomplete="if(#{facesContext.maximumSeverity.ordinal gt 0}) {#{rich:component('popup')}.show();}"
Run Code Online (Sandbox Code Playgroud)

关于最后一个案例的附加信息在这里