所以我的表单包含1个需要required
<h:form id="form">
<h:panelGrid columns="2">
<h:inputText id="default" requiredMessage="This field is required."
value="#{displayName.name}" required="true" />
<p:message for="default"/>
</h:panelGrid>
<p:commandButton value="Test" update="form" onclick="displayDlg.show();"/>
</h:form>
<p:dialog header="Dialog" widgetVar="displayDlg" id="dialog">
<h:outputText value="The name you just input is: #{displayName.name}"/>
</p:dialog>
因此,当我点击按钮Test
,并且不在文本框中有任何内容时,会弹出一条错误消息。
我希望如果验证过程成功,那么我想显示一个显示您刚输入的名称的对话框。但如果验证失败,则不要显示对话框。我很难实现这一目标。我尝试将dialog
放在对话框的内部或外部,但没有工作。请给我一些建议
答案 0 :(得分:2)
您可以使用visible
的{{1}}属性和ajax更新整个对话框。
<p:dialog>
在<h:form id="form">
<h:panelGrid columns="2">
<h:inputText id="default" requiredMessage="This field is required."
value="#{displayName.name}" required="true" />
<p:message for="default"/>
</h:panelGrid>
<p:commandButton value="Test" update="form :dialog" />
</h:form>
<p:dialog id="dialog" header="Dialog" visible="#{not empty displayName.name}">
<h:outputText value="The name you just input is: #{displayName.name}"/>
</p:dialog>
中使用:dialog
的额外好处是,每次更改时,它都会更新输入的名称。