PrimeFaces отключает проверку на кнопке отмены
В форме у меня есть несколько inputText с двумя командами, один для accept и один для отмены. Как отключить проверку только для кнопки отмены?
<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" />
в поля, и это не сработало.
Ответы
Ответ 1
Используйте атрибут immediate="true"
в вашем отмене commandButton
. Это пропустит всю обработку формы, жестко, пропустив значения "Запросить заявки", "Проверки процессов" и "Обновить значения модели".
<p:commandButton value="Cancel" update=":detailsForm" actionListener="#{userController.onDetailsEditCancel}" immediate="true"/>
Ответ 2
Используйте атрибут process="@this"
в кнопке Отмена. Это предотвратит отправку всей формы.
Или вы можете использовать p:button
вместо этого (однако это не имеет атрибута actionListener
). Смотрите этот другой Q/A
Ответ 3
если вы не хотите отправлять форму. Вы должны использовать только <p:button>
. <p:commandButton>
представляет форму.
<p:button value="delete All"
action="#{reloadBean.purge}" update="@form"/>