PrimeFaces禁用取消按钮上的验证[重复]

问题描述 投票:22回答:3

在一种形式中,我有一些带有两个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" />,但没有用。

validation jsf-2 primefaces
3个回答
33
投票

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

<p:commandButton value="Cancel" update=":detailsForm" actionListener="#{userController.onDetailsEditCancel}" immediate="true"/>

15
投票

使用取消按钮中的process="@this"属性。这样可以防止提交整个表格。

或者您也可以使用p:button(但是它没有actionListener属性)。参见this other Q/A


0
投票

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

<p:button value="delete All"
action="#{reloadBean.purge}" update="@form"/>
© www.soinside.com 2019 - 2024. All rights reserved.