validation - solo - validateclient
PrimeFaces deshabilita la validación en el botón de cancelar (3)
Si no desea enviar el formulario. Debes usar sólo el <p:button>
. el <p:commandButton>
envía el formulario.
<p:button value="delete All"
action="#{reloadBean.purge}" update="@form"/>
Esta pregunta ya tiene una respuesta aquí:
En un formulario tengo algún inputText con dos botones de comando, uno para aceptar y otro para cancelar ¿Cómo se puede desactivar la validación solo para el botón de cancelar?
<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>
Ya intenté insertar required="false"
en los campos pero no funcionó. También intenté insertar <f:validateBean disabled="true" />
en los campos y no funcionó.
Use el atributo immediate="true"
en su commandButton
cancelación. Esto omitirá todo el procesamiento del formulario, difícilmente, saltándose las fases Aplicar valores de solicitud , Validar procesos y Actualizar valores de modelo .
<p:commandButton value="Cancel" update=":detailsForm" actionListener="#{userController.onDetailsEditCancel}" immediate="true"/>
Use el atributo process="@this"
en el botón Cancelar. Esto evitará que se envíe todo el formulario.
O puede usar el p:button
lugar (sin embargo, esto no tiene el atributo actionListener
). Ver este otro Q / A