h: selectOneMenu onchange="submit ()" sofort="true" überspringt die Validierung anderer Eingaben nicht

7

Ich kann mein h:selectOneMenu nicht so einstellen, dass es sofort gesendet wird, ohne andere Eingaben zu validieren. Hier ist der Code:

%Vor%

Wenn ich den Menüwert ändere, werden immer noch die Validatoren der anderen Eingänge ausgelöst. Wie kann ich das bestreiten?

    
Deniz 07.10.2011, 13:31
quelle

1 Antwort

26

Das immediate="true" der aktuellen Eingabekomponente stoppt nicht die Validatoren der anderen Eingabekomponenten vom Feuern. Es bewirkt nur, dass die aktuelle Eingangskomponente eine Phase früher als üblich validiert wird. Grundsätzlich müssen Sie ein valueChangeListener an die Eingabekomponente anhängen und dann FacesContext#renderResponse() in der Listener-Methode aufrufen, damit die Verarbeitung aller anderen Eingabekomponenten übersprungen wird.

Aber da Sie bereits JSF 2.0 verwenden, ist es viel besser / einfacher, anstatt des altmodischen JSF 1.x-Ansatzes ajax-Fähigkeiten zu verwenden.

z. B.

%Vor%

mit

%Vor%

Wenn Sie einige Teile des Formulars erneut rendern möchten, wenn die Auswahl geändert wird, verwenden Sie das Attribut render . ZB

%Vor%

Siehe auch:

BalusC 07.10.2011, 13:36
quelle

Tags und Links