10. august 2005 - 14:26Der er
7 kommentarer og 1 løsning
Form validering på en "knap" modsat på hele formen
Hej Alle,
Jeg har en formvalidering på et loginscript. I loginscriptet ligger der 3 knapper som submitter: login, opret & glemt password.
Jeg vil gerne have, at min javascript validering KUN eksekveres når der trykkes på "Login" - ikke på de 2 andre knapper.... Men jeg er kørt fast - er der nogen som "lige" kan greje den for mig?
Kode (meget simplificeret): <script language="Javascript"> function ValidateF(Form) { if (Form.username.value.length == 0) { alert('Brugernavn skal udfyldes før du kan logge på.') Form.username.focus() return false }
if (Form.password.value.length == 0) { alert('Password skal udfyldes før du kan logge på.') Form.password.focus() return false }
Fordi javascript bruger short evaluation, vil scriptet opdage at resultatet bliver sandt, hvis den negerer den oprindelige værdi, så der vil slet ikke blive udført et kald til ValidateF-funktionen, når validate har værdien false !-)
Jeg kan godt følge hvad du siger til mig, men nu har jeg prøvet at implementere det i min kode - men - jeg må nok indse, at jeg ikke evner at få det til at spille :-(
Jeg har sågar forsøgt at ligge submit op i java funktionen - også uden held.
Jeg ville meget gerne, som du skriver teste alle 3 knapper - log ind, opret og gelmt password....
Er du til at lokke til, at vise mig hele javascript funktionen med de indlagte test?
java kan under ingen omstændigheder bruges som forkortelse for javascript, da det jo er et selvstændigt croos-platform fullflown programmeringssprog, hvilket man ik' li'e kan sige javascript er, så brug f.eks. js, hvis du har brug for en forkortelse !-)
-- men f.eks.
<script type="text/avascript"> function ValidateF(Form){ if(validate == 0) return false;
if (Form.username.value.length == 0){ alert('Brugernavn skal udfyldes før du kan bruge denne tjeneste.'); Form.username.focus(); return false; }
if (validate !=3 && Form.password.value.length == 0){ alert('Password skal udfyldes før du kan logge på.'); Form.password.focus(); return false; }
if (validate == 2 && (Form.password2.value.length == 0 || Form.password.value != Form.password2.value)){ alert('Password2 skal udfyldes med det samme som password.'); Form.password2.value = ""; Form.password2.focus(); return false; }
if (validate == 2 && Form.mail.value.length == 0 ){ alert('Mail-adresse skal angives.'); Form.mail.focus(); return false; }
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.