16. marts 2009 - 13:56Der er
14 kommentarer og 1 løsning
Valideringsproblem
Hejsa
Jeg har funktionen nedenfor og det virker fint, dog ville det være rigtig smart, hvis den sidste del (kontrol af password) først bliver "kørt", hvis der ikke er andre fejl, men hvordan gør jeg lige det??
function validering() { error = 0; if((document.forms[0].Fornavn.value=='') && (error==0)) { alert('Feltet Fornavn skal udfyldes!'); document.forms[0].Fornavn.focus(); error = 1; } if((document.forms[0].Efternavn.value=='') && (error==0)) { alert('Feltet Efternavn skal udfyldes!'); document.forms[0].Efternavn.focus(); error = 1; } if((document.forms[0].Firma.value=='') && (error==0)) { alert('Feltet Firma skal udfyldes!'); document.forms[0].Firma.focus(); error = 1; } if((document.forms[0].Adresse.value=='') && (error==0)) { alert('Feltet Adresse skal udfyldes!'); document.forms[0].Adresse.focus(); error = 1; } if((document.forms[0].Nr.value=='') && (error==0)) { alert('Feltet Nr skal udfyldes!'); document.forms[0].Nr.focus(); error = 1; } if ((document.forms[0].Postnr.value.length != 4)) { mesg = "Du har indtastet " + document.forms[0].Postnr.value.length + " cifre\n" mesg = mesg + "Men du skal indtaste 4 cifre, hverken færre eller flere!." alert(mesg); document.forms[0].Postnr.focus(); error = 1; } if ((document.forms[0].Mobil.value.length != 8)) { mesg = "Du har indtastet " + document.forms[0].Mobil.value.length + " cifre\n" mesg = mesg + "Men du skal indtaste 8 cifre, hverken færre eller flere!." alert(mesg); document.forms[0].Mobil.focus(); error = 1; } if((document.forms[0].Email.value=='') && (error==0)) { alert('Feltet Email skal udfyldes!'); document.forms[0].Email.focus(); error = 1; } if ((document.forms[0].Ftekst.value.length < 50) || (document.forms[0].Ftekst.value.length > 150)) { mesg = "Du har indtastet " + document.forms[0].Ftekst.value.length + " karakter\n" mesg = mesg + "Du skal indtaste mellem 50 and 150 karakter." alert(mesg); document.forms[0].Ftekst.focus(); error = 1; } if((document.forms[0].password.value=='') && (error==0)) { alert('Feltet Password skal udfyldes!'); document.forms[0].password.focus(); error = 1; } if (document.forms[0].password.value != document.forms[0].bekraeft.value) { alert('Password skal være ens i begge felter!'); document.forms[0].bekraeft.focus(); error = 1; } if(error == 0) document.forms[0].submit(); }
Udover det, bør du huske på at javascript validering ikke er sikkerhed. Blot en feature til lige at tage det værste, men der er intet sikkerheds aspekt i javascript validering _overhovedet_!!!
Well, det ved jeg ikke rigtigt, udover at du skal fjerne den første password-if-sætning der er ovenover det nye du satte ind. Så skulle det gerne virke når den er fjernet.
FORKERT:
if((document.forms[0].password.value=='') && (error==0)) { alert('Feltet Password skal udfyldes!'); document.forms[0].password.focus(); error = 1; } if(error == 0) { if(document.forms[0].password.value != document.forms[0].bekraeft.value) { alert('Password skal være ens i begge felter!'); document.forms[0].bekraeft.focus(); error = 1; } else { document.forms[0].submit(); } }
RIGTIGT:
if(error == 0) { if(document.forms[0].password.value != document.forms[0].bekraeft.value) { alert('Password skal være ens i begge felter!'); document.forms[0].bekraeft.focus(); error = 1; } else { document.forms[0].submit(); } }
Det ville være nemmere hvis man kunne se koden i funktion...
Ellers må du prøve at forklare hvad der ikke virker, hvornår det ikke virker, hvad der sker, hvad du gør for at det ikke virker. Så mange detaljer som muligt!
Jeg har testet lidt på det og det er udelukkende følgende som får funktionen til at fejle, der må være en syntaxfejl eller lign., jeg kan bare ikke finde den :(
if(error==0) { if((document.forms[0].password.value != document.forms[0].bekraeft.value)) { alert('Password skal være ens i begge felter!'); document.forms[0].bekraeft.focus(); error = 1; } else { document.forms[0].submit(); } }
Jeg manglede " && (error==0)) " i nogle if sætninger, derfor forsatte funktionen med at se efter andre fejl i stedet for at springe dem over da error vil være =1 efter den første fejl.
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.