JSF onclick return false or true

0

Cześć,

Jak w temacie, poniżej fragment kodu który mam w pliku *.jsp.

  1. onclick wywołuje metodę w java Script która pobiera dane z formatki i za pomocą DWR wsadza te pobrane dane do plików Javy
  2. action za pomocą JSF wywołuje metodę Javy która wcześniej pobrane dane w punkcie 1) zapisuje do bazy

Cały formularz waliduje po stronie Javy i wyświetlam stosowny komunikat, ale jest kilka pól które chciałbym zwalidować po stronie java Script, i gdy użytkownik kliknie button zapisz, w pierwszej kolejności zostaną zwalidowane te dane i jeśli będą ok to następnie wykona się metoda metoda_java_script(); a później nazwa_klasy_Main_Bean.metoda. Natomiast gdy walidacja nie odbędzie się pomyślnie customer powinien zobaczyć alert java script i strona nie powinna się przeładować(ważne!!)

			<t:commandLink action="#{nazwa_klasy_Main_Bean.metoda}"
						   onclick="metoda_java_script();">
				<t:outputText value="<span>#{msgc['button.confirm']}</span>" escape="false"/>
			</t:commandLink>

Zna ktoś rozwiązanie mojego problemu ??
z góry dzięki za odpowiedź :)

0

Ale czemu chcesz to walidować za pomocą JS a nie walidatora z JSF?

0

ponieważ to nie jest zwykły formularz gdzie wszystko znajduje się na jednej stronie, posiada on zakładki, założenie jest takie że w razie błędnych danych powinien pojawić się alert w JS, ale akcja sprawdzenia powinna nastąpić po kliknięciu buttona zatwierdź, obecnie znajdują się już tam podpięte dwie akcje onclick oraz action, ważne w tym wszystkim jest to gdy user poda złe dane w tych polach a następnie wciśnie wciśnie button którego kod jest powyżej, powinien pojawić się alert i strona nie może się przeładować oraz nie wykonują się funkcje i w zdarzeniach onclick i action, aby strona się nie przeładowała można to zrobić następująco:

onclick="metoda_java_script(); return false;">

ale ja chcę aby gdy wszystko jest ok strona się przeładowywała a gdy nie jest ok to nie...

rozumiecie o co chodzi ?

0

Może w ten sposób, czy zna ktoś z was sposób aby onclick w zależności od jakiegoś warunku zwracał true lub false ?

                    <t:commandLink action="#{nazwa_klasy_Main_Bean.metoda}"
                                               onclick="metoda_java_script(); **return false or true; **">
                            <t:outputText value="<span>#{msgc['button.confirm']}</span>" escape="false"/>
                    </t:commandLink>
0

rozwiązałem problem, może się komuś przyda:

        <h:commandLink action="#{nazwa_klasy_Main_Bean.metoda}"
            onclick="if(!validate()) {alert('error'); return false} else{metoda_java_script();}">
            <t:outputText value="<span>#{msgc['button.confirm']}</span>" escape="false"/>
        </h:commandLink>

1 użytkowników online, w tym zalogowanych: 0, gości: 1