2012-08-08 16 views
5

Tengo página en la que edito alguna entidad. Esa página tiene dos botones de comando. Uno es "Atrás" y uno es "Guardar" y también en esa página tengo formulario con campos de entrada (idInputSubject). Algunos de ellos son obligatorios, otros no.Ignorar validación en commandButton press

Cómo puedo asegurarme de que presionamos el botón "Atrás" (cancelar la edición y regresar) la validación se ignorará, que no es el caso ahora. Ahora, cuando presiono los botones de "Atrás" o "Guardar", aparecen los mensajes de validación si no llené el archivo requerido con los valores correctos (idInputSubject).

Tanto y los botones "atrás" en "Guardar" son de la misma forma:

<h:form id="idFormMeasureDetail" styleClass="bodyForm" prependId="false"> 
    ... 
    <p:commandButton value="#{contentMB.msg.label_back.value}" 
     action="#{chooseMeasureControllerMB.aSearch}" 
     rendered="#{detailMeasureMB.navigation eq 0}" ajax="false" 
     icon="ui-icon-arrowreturnthick-1-w"/> 
    <p:commandButton value="#{contentMB.msg.button_save.value}" ajax="false" 
     icon="ui-icon-disk" actionListener="#{detailMeasureControllerMB.alApplyChanges}" 
        title="#{contentMB.msg.tip_Apply.value}" /> 

    ... 
    <p:inputTextarea id="idInputSubject" value="#{detailMeasureMB.measure.aufgabe}" 
    readonly="#{!userSessionMB.supervisor and !detailMeasureMB.isCreator}" 
    required="#{globalSessionMB.globalWebOptionsMap['MMRequiredSubject'].propvalue}" 
      title="#{contentMB.msg.tip_Betreff.value}" 
      autoResize="false" style="width:100%;" > 
    </p:inputTextarea> 
    <p:message id="inputSubjectMsg" for="idInputSubject" display="icon" /> 
    ... 

</h:form> 

ChooseMeasureControllerMB:

@ManagedBean(name = "chooseMeasureControllerMB") 
@RequestScoped 
public class ChooseMeasureControllerMB extends BaseMeasureControllerMB { 
... 
public String aSearch() { 
      ... 
    // navigate to target-page 
    return "/pages/mm/showMeasuresList.xhtml?faces-redirect=true"; 
} 
... 
} 

Respuesta

0

En resumen, cuando se está haciendo clic en el botón "atrás", enviado el formulario y se valida los datos. Para evitar esto, coloque el botón en otra forma o use Java-script para la navegación.

En general, cuando desea cancelar una operación no desea enviar los datos, ya que debe descartarse. Use alguna acción del lado del cliente. Creo que también puede usar un <p:commandButton> o un <p:button> para navegar. De esta forma, el formulario tampoco se envía.

Cuestiones relacionadas