我在对话框中有一个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" />
相比