在一种形式中,我有一些带有两个commandButton的inputText,一个是accept
,另一个是cancel
。
如何仅禁用取消按钮的验证?
<h:form id="detailsForm">
<p:inputText id="editUsername" value="#{userController.editUser.usrUsername}" />
<p:inputText id="editFirstName" value="#{userController.editUser.usrFirstName}" />
<p:inputText id="editLastName" value="#{userController.editUser.usrLastName}" />
<p:commandButton value="Accept" update=":detailsForm" actionListener="#{userController.onDetailsEditAccept}" />
<p:commandButton value="Cancel" update=":detailsForm" actionListener="#{userController.onDetailsEditCancel}" />
</h:form>
我已经尝试在字段上插入required="false"
,但是没有用。我也尝试在字段上插入<f:validateBean disabled="true" />
,但没有用。
在取消immediate="true"
中使用属性commandButton
。通过跳过Apply Request Values,Process Validations和Update Model Values阶段,这将跳过表单的整个处理过程。
<p:commandButton value="Cancel" update=":detailsForm" actionListener="#{userController.onDetailsEditCancel}" immediate="true"/>
使用取消按钮中的process="@this"
属性。这样可以防止提交整个表格。
或者您也可以使用p:button
(但是它没有actionListener
属性)。参见this other Q/A
如果您不想提交表格。您应该只使用<p:button>
。 <p:commandButton>
提交表格。
<p:button value="delete All"
action="#{reloadBean.purge}" update="@form"/>