function closeWhenValidationSuccesful(dialog, xhr, status, args) {
if (!args.validationFailed) {
dialog.hide();
}
}
<p:commandButton value="Save" action="doSomething" update=":formName:panelContainingValidatedElements"
oncomplete="closeWhenValidationSuccesful(dialogWidgetVar, xhr, status, args)" />
Я использую следующее, чтобы держать диалог открытым и отображать ошибки проверки. Вам нужно будет переместить свои входные данные в panelGrid, чтобы он мог быть целевым для атрибута обновления.