我在这样的对话框中有一个表单:
<p:dialog id="panel" header="Inserisci" widgetVar="dlg1">
<h:form id="form">
<p:inputText id="username" value="#{userController.username}" />
<p:inputText type="password" id="password" value="#{userController.password}" />
<p:commandButton actionListener="#{userController.insert}" oncomplete="dlg1.hide();" value="Accept" />
</h:form>
</p:dialog>
单击此对话框会显示一个“插入”按钮。当我单击接受按钮时,表单将使用 Ajax 提交并经过验证。当响应到来时,对话框在任何情况下都会关闭,无论表单是否有效。如何检查表单在客户端 oncomplete 中是否有效并仅在有效时才关闭对话框?顺便说一句,验证是有效的,因为如果我在输入错误数据后再次打开对话框,无效字段会被红色边框包围。我已经尝试使用 onsuccess 更改 oncomplete ,但它不起作用,因为即使表单无效,ajax 请求仍然可以很好地发送。