在重新打开对话框时,在对话框中,如何擦除验证失败

时间:2013-08-06 21:14:28

标签: validation jsf primefaces dialog

我在p:dialog中有一个必填输入字段。如果我首先没有为该字段提交任何内容,则会在该字段上发生验证错误。然后我关闭对话框并重新打开它,验证错误仍然存​​在。关闭对话框后,如何消除验证错误?

3 个答案:

答案 0 :(得分:9)

您应该在您打开对话框的元素上使用p:resetInput

例如,如果您使用p:commandButton

<p:commandButton value="Open dialog" update=":dialogId" oncomplete="PF('dialogWidget').show()" >
    <p:resetInput target=":dialogId" />
</p:commandButton>

这将在打开对话框时重置缓存的值(包括验证消息)。

答案 1 :(得分:3)

我能够重现您的案例,您可以执行以下操作:

  • 制作对话closable="false"
  • 添加隐藏对话框的Cancel按钮。
  • 在“取消”按钮内的Primefaces Extensions中添加resetInput组件。这将清除表单验证和值。

以下示例假设您的对话为名为widgetVar的{​​{1}}。

wvDialog

如果需要,您甚至可以在按钮 <p:commandButton value="Cancel" immediate="true" onclick="wvDialog.hide()"> <pe:resetInput for="myDialogFormId /> </p:commandButton> 中调用bean方法。

我希望它有所帮助。

答案 2 :(得分:0)

每次提交表单时都会更新p:dialogp:message 您可以使用p:commandButton更新属性来完成此操作。

<p:commandButton update="ID_OF_DIALOG" />