22

在一个表单中,我有一些带有两个 commandButton 的 inputText,一个 toaccept和一个 to 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" />,但没有奏效。

4

3 回答 3

34

immediate="true"在您的 cancel 中使用该属性commandButton通过跳过Apply Request ValuesProcess ValidationsUpdate Model Values阶段,这将跳过表单的整个处理过程。

<p:commandButton value="Cancel" update=":detailsForm" actionListener="#{userController.onDetailsEditCancel}" immediate="true"/>
于 2013-02-19T13:15:01.260 回答
15

使用取消按钮中的属性process="@this"。这将阻止提交整个表单。

或者您可以p:button改用(但是这没有actionListener属性)。请参阅此其他 Q/A

于 2013-02-19T13:25:48.123 回答
0

如果您不想提交表单。你应该只使用<p:button>. 提交<p:commandButton>表单。

<p:button value="delete All"
action="#{reloadBean.purge}" update="@form"/>
于 2016-01-07T10:04:50.553 回答