PrimeFaces禁用取消按钮验证

时间:2013-02-19 13:13:10

标签: validation jsf-2 primefaces

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

3 个答案:

答案 0 :(得分:30)

在取消immediate="true"中使用属性commandButton。通过跳过应用请求值流程验证更新模型值阶段,这将跳过表单的整个处理,这很难。

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

答案 1 :(得分:13)

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

或者您可以使用p:button代替(但这不具有actionListener属性)。见this other Q/A

答案 2 :(得分:0)

如果您不想提交表单。你应该只使用App.controller("viewDetailMenu", function ($scope, menuService, $stateParams) { $scope.menu = menuService.getMenu($stateParams.id); }); <p:button>提交表单。

<p:commandButton>