Несколько представлений формы при вызове диалогового окна из другого диалогового окна jsf
Я пытаюсь вызвать диалоговое окно (p:dialog) из другого диалогового окна. На моей странице при нажатии на ссылку открывается одно диалоговое окно, в этом диалоговом окне есть два раздела: один для входа в систему и другой для регистрации. В настоящее время структура моей страницы выглядит следующим образом.
<h:form>
<h:outputLink value="javascript:void(0)" onclick="dlg.show()" title="Login" />
</h:form>
<p:dialog id="dialog" header="Login" widgetVar="dlg" appendToBody="true" modal="true" width="750">
<h:form id="loginForm">
...
</h:form>
<h:form id="signupForm">
...
<p:commandButton id="submitButton" value="SignUp"
onstart="statusDialog.show();"
action="# {signupBean.doSignup}"
update="growl"
oncomplete="statusDialog.hide();dlg.hide();welcome.show();"/>
</h:form>
</p:dialog>
<p:dialog header="Welcome" id="welcome" resizable="false" widgetVar="welcome" width="700" closable="false" modal ="true">
</p:dialog>
Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я нажимаю "Отправить" и на странице появляются ошибки проверки, отображаются сообщения об ошибках и новое диалоговое окно. Предполагается, что новое диалоговое окно будет отображаться только после успешного заполнения формы без каких-либо ошибок проверки.
Куда я иду не так?
1 ответ
Результат проверки находится в oncomplete
атрибут компонентов PrimeFaces, доступных в JavaScript args.validationFailed
переменная, которая возвращает boolean
, Просто используйте это.
oncomplete="if (!args.validationFailed) { statusDialog.hide(); dlg.hide(); welcome.show(); }"/>