Tengo un Facelets vista de la siguiente manera:

<h:form id="f1">
<p:panelGrid id="p1" columns="2"> 
<p: inputText value="Distance Travelled::/><p:inputText value="#{airTransportUsage.distance}" immediate="true"
required="true" requiredMessage="Distance Travelled Field cannot be left blank.."
converterMessage="Distance Travelled must be a number"
validatorMessage="Distance Travelled must be a valid number.."
id="dis">
<f:validateLongRange minimum="1"/>
</p:inputText>
<p:commandButton value="Reset" action="#{airTransportUsage.reset}" update=":f1:p1" />
</p:panelGrid>
</h:form>

Cuando el botón de reset se hace clic, el método correspondiente nunca puede ser ejecutado debido a la validación. No se pueden utilizar las immediate="true" en mi botón de reset, ya que crea algunos otros problemas.

OriginalEl autor Basuz | 2012-09-27

2 Comentarios

  1. 25

    La <p:commandButton> procesos, de hecho, por defecto el formulario en su totalidad (process="@form"), usted puede cambiar este especificando la componente de corriente en el process atributo.

    <p:commandButton value="Reset" ... process="@this" />

    Sin embargo, esto se producirá si el formulario ya ha sido validado previamente. Los campos de entrada que han sido marcados como no válidos no se actualiza con el nuevo valor del modelo (que has resetted de sí mismo). Si usted está utilizando PrimeFaces 3.4, a continuación, inserta <p:resetInput> en el botón:

    <p:commandButton value="Reset" ... process="@this">
        <p:resetInput target="@form" />
    </p:commandButton>

    Si usted no está en PrimeFaces 3.4 todavía y no se puede actualizar a esto, usted puede usar OmniFaces ResetInputAjaxActionListener para esto.

    Una completamente diferente alternativa es que se acaba de actualizar la página actual por una nueva petición GET.

    <p:button value="Reset" />
    gracias, funciona. 🙂
    Eres bienvenido.

    OriginalEl autor BalusC

  2. 2

    Esto funcionó para mí en PrimeFaces 5.3

    <p:commandButton action="#{bean.reset()}" value="Reset" process="@this" update="@form" resetValues="true" />

    Usted probablemente puede reemplazar el "@form" de destino de la actualización atributo de un componente específico, si quieres.

    esto funcionó para mí. Necesitaba tanto el actionListener y la resetValues. gracias!

    OriginalEl autor StanL

Dejar respuesta

Please enter your comment!
Please enter your name here