为什么我的表单在渲染后没有重置他的样式?
Why does my form isn't reseting his styling after render?
我有一个带有树按钮的表单。其中之一是返回上一页的 "Cancel" 按钮。
问题是存在任何验证问题,例如未提交必填字段,当我返回表单时未重置该字段的样式。
这是xhtml的简化结构:
<panel id="horizontal">
<form id="filterVipLoungeForm">
</form>
<form id="frmAddPax">
<form id="frmAccessType">
</form>
</form>
<panelGrid>
<commandButton value="agregar" />
<commandButton value="limpiar" />
<commandButton value="cancelar" />
</panelGrid>
</panel>
调用添加乘客表单的按钮代码:
<p:commandButton
value="#{label['manageVipLoungeEntrance.button.addPassenger']}"
action="#{manageVipLoungeEntranceExtMB.setRenderStatus(3, 1)}"
actionListener="#{manageVipLoungeEntranceExtMB.hideMainForm}"
update=":filterVipLoungeForm :horizontal">
</p:commandButton>
取消按钮代码:
<p:commandButton
value="#{label['manageVipLoungeEntrance.button.cancel']}"
onclick="showLocalDate()"
action="#{manageVipLoungeEntranceExtMB.setRenderStatus(0, 1)}"
actionListener="#{manageVipLoungeEntranceExtMB.setRenderStatus(3, 0)}"
update=":filterVipLoungeForm :horizontal">
</p:commandButton>
这从支持 bean 调用 setRenderStatus 调用一个方法,设置表单和他的呈现状态以在呈现属性中评估。
在此过程中,取消按钮的表单呈现状态设置为 false,而前一个表单的呈现状态设置为 true。
hideMainForm方法调用了两次setRenderStatus方法,设置主窗体渲染状态为false,添加乘客渲染状态为true。
问题是任何验证错误,如果我返回上一页并返回表单,我仍然收到验证错误。
[编辑]
抱歉,我忘记添加了其中包含的两个表单的渲染评估代码:
表单的呈现状态验证 "frmAddPax"
<h:form id="frmAddPax" rendered="#{manageMB.renderStatus.isRenderFormAddPax()}">
表单的呈现状态验证 "filterVipLoungeForm"
<h:form id="filterVipLoungeForm" style="width:95% !important;"
rendered="#{manageMB.renderStatus.isRenderFormMain()}"
onkeypress="return event.keyCode != 13">
我已经尝试使用 <p:resetInput>
但它没有用,我期待 ID 为 frmAddPax 的表单重置他的状态但它没有用:
<p:commandButton
value="#{label['manageVipLoungeEntrance.button.cancel']}"
onclick="showLocalDate()"
action="#{manageVipLoungeEntranceExtMB.setRenderStatus(0, 1)}"
actionListener="#{manageVipLoungeEntranceExtMB.setRenderStatus(3, 0)}"
update=":filterVipLoungeForm :horizontal">
<p:resetInput target=":frmAddPax" />
</p:commandButton>
我使用了 <p:ajax resetValues="true">
,这个可以满足我的需要。
我真的不知道为什么要使用 ajax 而不是 resetInput。
<p:commandButton
value="#{label['manageVipLoungeEntrance.button.cancel']}"
onclick="showLocalDate()"
action="#{manageVipLoungeEntranceExtMB.setRenderStatus(0, 1)}"
actionListener="#{manageVipLoungeEntranceExtMB.setRenderStatus(3, 0)}"
update=":filterVipLoungeForm :horizontal">
<p:ajax update=":frmAddPax" resetValues="true" />
</p:commandButton>
我有一个带有树按钮的表单。其中之一是返回上一页的 "Cancel" 按钮。
问题是存在任何验证问题,例如未提交必填字段,当我返回表单时未重置该字段的样式。
这是xhtml的简化结构:
<panel id="horizontal">
<form id="filterVipLoungeForm">
</form>
<form id="frmAddPax">
<form id="frmAccessType">
</form>
</form>
<panelGrid>
<commandButton value="agregar" />
<commandButton value="limpiar" />
<commandButton value="cancelar" />
</panelGrid>
</panel>
调用添加乘客表单的按钮代码:
<p:commandButton
value="#{label['manageVipLoungeEntrance.button.addPassenger']}"
action="#{manageVipLoungeEntranceExtMB.setRenderStatus(3, 1)}"
actionListener="#{manageVipLoungeEntranceExtMB.hideMainForm}"
update=":filterVipLoungeForm :horizontal">
</p:commandButton>
取消按钮代码:
<p:commandButton
value="#{label['manageVipLoungeEntrance.button.cancel']}"
onclick="showLocalDate()"
action="#{manageVipLoungeEntranceExtMB.setRenderStatus(0, 1)}"
actionListener="#{manageVipLoungeEntranceExtMB.setRenderStatus(3, 0)}"
update=":filterVipLoungeForm :horizontal">
</p:commandButton>
这从支持 bean 调用 setRenderStatus 调用一个方法,设置表单和他的呈现状态以在呈现属性中评估。
在此过程中,取消按钮的表单呈现状态设置为 false,而前一个表单的呈现状态设置为 true。
hideMainForm方法调用了两次setRenderStatus方法,设置主窗体渲染状态为false,添加乘客渲染状态为true。
问题是任何验证错误,如果我返回上一页并返回表单,我仍然收到验证错误。
[编辑]
抱歉,我忘记添加了其中包含的两个表单的渲染评估代码:
表单的呈现状态验证 "frmAddPax"
<h:form id="frmAddPax" rendered="#{manageMB.renderStatus.isRenderFormAddPax()}">
表单的呈现状态验证 "filterVipLoungeForm"
<h:form id="filterVipLoungeForm" style="width:95% !important;"
rendered="#{manageMB.renderStatus.isRenderFormMain()}"
onkeypress="return event.keyCode != 13">
我已经尝试使用 <p:resetInput>
但它没有用,我期待 ID 为 frmAddPax 的表单重置他的状态但它没有用:
<p:commandButton
value="#{label['manageVipLoungeEntrance.button.cancel']}"
onclick="showLocalDate()"
action="#{manageVipLoungeEntranceExtMB.setRenderStatus(0, 1)}"
actionListener="#{manageVipLoungeEntranceExtMB.setRenderStatus(3, 0)}"
update=":filterVipLoungeForm :horizontal">
<p:resetInput target=":frmAddPax" />
</p:commandButton>
我使用了 <p:ajax resetValues="true">
,这个可以满足我的需要。
我真的不知道为什么要使用 ajax 而不是 resetInput。
<p:commandButton
value="#{label['manageVipLoungeEntrance.button.cancel']}"
onclick="showLocalDate()"
action="#{manageVipLoungeEntranceExtMB.setRenderStatus(0, 1)}"
actionListener="#{manageVipLoungeEntranceExtMB.setRenderStatus(3, 0)}"
update=":filterVipLoungeForm :horizontal">
<p:ajax update=":frmAddPax" resetValues="true" />
</p:commandButton>