2013-01-06 9 views
5

Zastanawiam się, czy istnieje sztuczka do sprawdzania wszystkich pól w formularzu, z wyjątkiem jednego?JSF i częściowa walidacja

Coś jak:

<p:remoteCommand process="@form^F100" .... /> 

Oczywiście, to nie działa ...

Jeśli mam 100 pól w formularzu, czy jest jakiś sposób lub skrót do sprawdzania wszystkich F100 wyjątku na przykład ?

jestem skazany używać

<p:remoteCommand process="F1 F2 F3 F4 F5 F6 .... F99" .... /> 

?

+0

Czy próbowałeś umieścić je w dwóch osobnych formach? –

+0

@Alexandre: nie, ale mam wiele commandButton, które sprawdzają różne pola wewnątrz tego samego formularza, więc muszę zachować tylko 1 formularz –

+0

Możesz grać z formularzami i zmienić swój proces = "@ form1 @ form2" lub tylko proces = "@ formularz1 " na przykład. –

Odpowiedz

13

Możesz użyć do tego PrimeFaces Selectors (PFS). Pozwala to na użycie atrybutów jQuery CSS selector syntax w process i update komponentów komponentu PrimeFaces ajax. Możesz na przykład użyć klasy noprocess w komponencie, który chcesz pominąć i użyć selektora :not(.noprocess).

konkretnych wymagań, może być rozwiązany w następujący sposób:

<h:form> 
    <h:inputText ... /> 
    <h:inputText ... /> 
    <h:inputText ... /> 
    ... 
    <h:inputText ... /> 
    <h:inputText ... /> 
    <h:inputText ... styleClass="noprocess" /> 
    <p:remoteCommand ... process="@(form :not(.noprocess))"/> 
</h:form> 

Przykład ten obrabia postać oczekiwać od sygnałów wejściowych mających class="noprocess" na stronie klienta.

+0

To było ... dokładnie to, czego potrzebowałem! Dziękuję bardzo jak zwykle :) –

+0

Nie ma za co. – BalusC

+0

Wystarczy, że określę moje zapotrzebowanie na informacje: Używam komponentu p: captcha, a reCaptcha nie obsługuje częściowej aktualizacji strony, więc nie chcę odświeżać go przez Ajax, ale za pomocą metody 'Recaptcha.reload()' –