我在对话框中有一个inputTextArea,并希望在用户点击取消按钮时不应发送/更改bean属性,但确实如此。
<form name="contactform" method="post" action="send_form_email.php">
<div class="controls">
<input type="text" name="first_name" placeholder="Name" id="name" required data-validation-required-message="Please enter your name" />
</div>
<div class="controls">
<input type="email" placeholder="Email" name="email" id="email" required data-validation-required-message="Please enter your email address" />
</div>
<div class="controls">
<input type="tel" placeholder="Phone" name="phone" id="phone" required data-validation-required-message="Please enter your phone number" />
</div>
<div class="controls">
<textarea name="comments" rows="5" cols="100" placeholder="Message" id="message" required data-validation-required-message="Please enter your message" maxlength="999" style="resize:none"></textarea>
</div>
<button type="submit" class="btn-primary submit">SEND!<i class="fa fa-paper-plane sub"></i></button>
</form>
打开对话框的按钮:
<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>
任何提示?提前谢谢。
答案 0 :(得分:2)
当您使用commandButton
时,默认行为是提交带有ajax请求的封闭表单。
我怀疑你想要做的是重置表单输入并关闭对话框。在这种情况下,你应该根据primefaces doc:
去找type="reset"
重置按钮不提交表单,只需重置表单内容。
完成后,触发关闭的javascript代码:
<p:commandButton value="Cancel" type="reset"
onclick="PF('paketNotizenDialogWV').hide();"/>
如果您不想重置表单,只需关闭对话框,然后使用:
<p:commandButton value="Cancel" type="button"
onclick="PF('paketNotizenDialogWV').hide();"/>
根据primefaces doc的说法:
按钮用于执行自定义javascript而不会导致 ajax / non-ajax请求。要创建按钮设置类型为“按钮”
<强>更新强>
如果要重置辅助bean中的值,请使用primefaces的reset input fields功能。
在你的情况下,它会是这样的:
<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>
答案 1 :(得分:0)
只需添加type="button"
并移除process="@none" update="@none"
来自<p:commandButton value="Cancel" oncomplete="PF('paketNotizenDialogWV').hide();" process="@none" update="@none" />