Avatar billede basoba Nybegynder
06. april 2006 - 02:15 Der er 1 kommentar

JSF, validering og onBlur

Hej. Jeg har lavet en jsp-side med nogle felter som en person skal udfylde og derefter sende ved hjælp af en "send" knap. Jeg vil gerne have at hver enkelt felt bliver valideret inden man trykker på "send" knappen, som er en submitknap. Til det kan man bruge JSF og da standard valideringerne i JSF ikke dækker mine krav, har jeg lavet mine egne validatorklasser(en ganske almindelig java klasse med metoder og de nødvendigt importerede validator pakker). Som sagt vil jeg gerne have at valideringerne går igang inden man trykker på knappen, dvs så snart fokuset rettes væk fra feltet og det kan gøres ved hjælp af onBlur.
Mit problem er at jeg ikke ved hva jeg skal skrive i onBlur så den refererer til min validatorklasse og derved starter valideringen af det der er blevet skrevet i feltet. Har prøvet at skrive navnet på min validatorklasse men det virkede ikke. Hvis jeg skriver submit i onBlur dvs. onBlur="submit();" så kan den godt validere og evt skrive en fejlmeddelelse, hvis det indtastede ikke opfylder mine krav, så min validatorklasse virker som den skal, men der må ikke stå submit i onBlur fordi submit submitter alle felter og ikke kun et enkelt felt.
Håber jeg har beskrevet min spørgsmål grundigt nok. Hvis du har spørgsmål eller hvis der er noget du gerne vil have uddybet så er du velkommen til at skrive til min e-mail: obari@hotmail.com
På forhånd tak.
Avatar billede cayman Nybegynder
07. april 2006 - 10:04 #1
Det lader til at du blander clientside og serverside lidt sammen. Dit javascript (onblur() eksempelvis) kører i klientens browser. Det er først når han/hun trykker send at requestet rammer din servletcontainer, hvor din jsp-side ligger.
Så umiddelbart kan du ikke gøre noget andet end at submitte når du vil validere.
Dine event attributter (onblur=, onchange= etc) kalder javascript i browseren og har ingen forbindelse til din server, hvor din java kode ligger. Din jsp side bliver kompileret til en servlet som er en javaklasse der ligger i din servletcontainer.

Med AJAX kan du dog lave noget, der kan få din javascript til at kontakte din server, uden du kan se det. Men det er vist lidt hardcore..

Løsningen kunne være at du laver nogle javascriptfunktioner, som gør det samme som din e javaklasser.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester