validation - validate - ¿Cómo saltarse la validación cuando se hace clic en un botón específico?
validate email jsf (1)
En caso de que no esté usando ajax, o aún esté en JSF 1.x, y realmente necesite invocar una acción comercial en el método de cancel()
(es decir, simplemente recargar la página no es suficiente), entonces su mejor opción es agregar de immediate="true"
al botón. De esta forma, todos los campos de entrada que no tengan immediate="true"
se omitirán en el procesamiento.
<h:commandButton value="Cancel" action="#{bean.cancel}" immediate="true" />
En JSF 2.x, mucho mejor es enviar el formulario por <f:ajax>
, que de forma predeterminada solo procesa @this
lugar de @form
.
<h:commandButton value="Cancel" action="#{bean.cancel}">
<f:ajax />
</h:commandButton>
Si desea navegar a otra página aquí, agregue ?faces-redirect=true
al resultado en el método cancel()
.
O bien, si realmente no necesita invocar ninguna acción comercial, simplemente use <h:button>
en donde especifica directamente el resultado (implícito) del caso de navegación.
<h:button value="Cancel" outcome="previouspage" />
Esto básicamente recargará la página mediante una solicitud GET. El <h:button>
no existe en JSF 1.x, pero también puedes usar HTML + JS simple para eso.
Ver también:
Tengo un formulario con un validador en un campo. Tengo dos h:commandButton
s: Ok y Cancelar. Cuando llevo datos incorrectos y hago clic en Cancelar obtengo un mensaje de validación. ¿Qué debo hacer para que el validador no se ejecute cuando hago clic en cancelar?