对话框中的输入文本区域不应该处理,但它确实可以处理



我在对话框中有一个inputTextArea,并希望当用户单击取消按钮时不应发送/更改bean属性,但它确实如此。

<p:dialog header="Notizen" id="paketNotizenDialog" modal="true"
widgetVar="paketNotizenDialogWV">
<h:form>
<p:panelGrid columns="1">
<p:inputTextarea  scrollHeight="200" rows="6" cols="33" autoResize="false"
value="#{paketErstellenDialogController.selectedPaket.notiz}" />
</p:panelGrid>
<p:commandButton value="Save" process="@form" oncomplete="PF('paketNotizenDialogWV').hide();"/>
<p:commandButton value="Cancel" oncomplete="PF('paketNotizenDialogWV').hide();" process="@none" update="@none" />
</h:form>
</p:dialog>

打开对话框的按钮:

<p:commandButton id="notizEintragButton" value="T" process="@this"
onclick="PF('paketNotizenDialogWV').show();" />

有什么提示吗?提前谢谢。

当您使用commandButton时,默认行为是提交带有 ajax 请求的封闭表单。

我怀疑您在这里要做的是重置表单输入并关闭对话框。在这种情况下,您应该选择根据素数文档type="reset"

重置

按钮不会提交表单,只会重置表单内容。

一旦完成,触发你的关闭JavaScript代码:

<p:commandButton value="Cancel" type="reset" 
onclick="PF('paketNotizenDialogWV').hide();"/>

如果您不想重置表单,只需关闭对话框,然后使用:

<p:commandButton value="Cancel" type="button" 
onclick="PF('paketNotizenDialogWV').hide();"/>

根据素数文档,这将:

按钮用于执行自定义 JavaScript,而不会导致 ajax/non-ajax request.创建按钮集类型为"按钮">

更新

如果要重置后备 Bean 中的值,请使用素数的重置输入字段功能。

在您的情况下,它将是这样的:

<p:panelGrid columns="1">
<p:inputTextarea  id="input" scrollHeight="200" rows="6" cols="33" autoResize="false"
value="#{paketErstellenDialogController.selectedPaket.notiz}" />
</p:panelGrid>
<p:commandButton value="Cancel" oncomplete="PF('paketNotizenDialogWV').hide();" 
process="@this" update="input" >
<p:resetInput target="input" />
</p:commandButton>

只需添加type="button"并删除process="@none" update="@none"<p:commandButton value="Cancel" oncomplete="PF('paketNotizenDialogWV').hide();" process="@none" update="@none" />相比

相关内容

最新更新