2016-07-29 9 views
0

Ich habe ein Formular mit mehreren Feldern und es gibt einen Block mit zwei erforderlichen Feldern und einer Suchschaltfläche. Was ich will ist, wenn ich auf Suchknopf klicke, möchte ich die Formvalidierungen ignorieren und dass die zwei Felder Werte in der Bohne eingestellt werden, aber dieses geschieht nicht. Wie soll ich die Werte anwenden?Validierung überspringen, wenn auf eine bestimmte Schaltfläche geklickt wird und bestimmte Werte festgelegt werden

EDIT: Ich habe mehr Pflichtfelder in der Ansicht, die ich in diesem Fall ignorieren möchte.

<p:inputMask id="field1" mask="9999" styleClass="marginLeft input smaller" 
           requiredMessage="#{label.msg_requiredFields}" 
           required="true" value="#{cc.attrs.cena.field.cp4Offline}"/> 

        <p:inputMask id="field2" mask="999" 
           requiredMessage="#{label.msg_requiredFields}" 
           required="true" styleClass="input smallest" 
           value="#{cc.attrs.cena.field.cp3Offline}"/> 

        <p:commandButton id="pesquisarId" styleClass="marginLeft" icon="ui-icon-search" 
            actionListener="#{pesquisarMorada.pesquisar(cc.attrs.cena)}" 
       update="resultPesquisaPanelId" process="@this field1 field2" immediate="true"/> 
+0

Ich habe den Titel Ihrer Frage in Google veröffentlicht und http://Stackoverflow.com/questions/6062923/how-to-skip-validation-when-a-specific-button-is-clicked gefunden. Der Unterschied besteht also darin, dass Sie es nur für zwei Felder haben wollen. – Kukeltje

+0

Ich habe mehr Felder in meiner Sicht, die erforderlich sind. In diesem Fall wird die Aktion der Schaltfläche nicht ausgeführt. Lösungen? – Jorge

+2

Mögliches Duplikat von [Wie lässt sich die Validierung von der gedrückten Taste abhängig machen?] (Http://stackoverflow.com/questions/8370675/how-to-let-validation-depend-on-the-pressed-button) – Kukeltje

Antwort

0

immediate="true" von <p:commandButton /> entfernen.

Von diesen article:

... Wenn sofort auf true auf einer Befehl Komponente gesetzt ist, wird die Aktion in der Phase anfordern Werte gelten aufgerufen ...

... Daher werden Ihre Modellwerte überhaupt nicht aktualisiert.

+0

Ok, aber ich habe mehr Felder in meiner Sicht, die erforderlich sind. In diesem Fall wird die Aktion der Schaltfläche nicht ausgeführt. Lösungen? – Jorge

+0

@Jorge Selbst wenn Sie mehr Felder mit 'required =" true "' haben, solange Sie 'process =" @ this, field1, field2 "' auf Ihrem '' behalten, werden diese ignoriert. Aber nur zur Vollständigkeit, bitte aktualisieren Sie Ihre Frage mit diesen zusätzlichen Feldern. Vielleicht sind sie so konfiguriert, dass der "actionListener" nicht ausgeführt werden kann. – irieill

+0

@Jorge Gibt es irgendwelche Updates? Hat meine Antwort Ihnen geholfen? – irieill