22. august 2005 - 10:04Der er
16 kommentarer og 1 løsning
Validering af en masse tekstfelter
hejsa
jeg er igang med at lave en hjemmeside hvor man skal oprette en bruger for at kunne bruge min hjemmeside. ville så bare lige høre om hvordan man kan tjekke om personen har skrevet noget i alle felterne.
har felterne: Brugernavn kodeord fornavn efternavn email gentag email
og ville lige høre hvordan man tjekker om det er den samme email personen har skrevet i email og gentag email.
Jeg har brugt denne før. Den tjekker også for om email er en rigtig addresse. Ved desværre ikke hvem der har lavet den :(
function validate(objForm){ for (i=0; i<objForm.newsTo.length; i++) objForm.newsTo[i].selected = true; var errorMessage = ""; var firstError = "";
if (!objForm.email.value.match(/^[a-z0-9_\.-]+@[a-z0-9_\.-]+\.\w{2,4}$/i)) { alert("E-mail address not valid"); return false; }
for (var i=0;i<objForm.length;i++){ switch(objForm[i].type){ case "text": if (objForm[i].required && !objForm[i].value){ errorMessage += objForm[i].feltnavn + "\n"; if (!firstError) firstError = objForm[i]; } break; } } if (errorMessage){ alert("Please fill out\n" + errorMessage); firstError.focus(); return false; } }
den valider kun "text" felter nu og alle de felter som skal valideres skal have required="true" med som attribut. Den skal udvides til at sammenligne emailfelterne, men det kan vi tage bagefter. formen skal have onsubmit="return validate(this);" på så funktionen bliver kaldt.
Denne funktion returnerer true hvis alle felter er udfyldt og email er ens (name-attributten på de enkelte formularfelter skal stemme overens med de viste).
Sammenlign email kan komme lige efter valideringen:
if (!objForm.email.value.match(/^[a-z0-9_\.-]+@[a-z0-9_\.-]+\.\w{2,4}$/i)) { alert("E-mail address not valid"); return false; } if (objForm.email.value != objForm.emailGentag.value) alert("E-mail do not match"); return false; }
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> <!-- function validate(objForm){ var errorMessage = ""; var firstError = "";
if (!objForm.email.value.match(/^[a-z0-9_\.-]+@[a-z0-9_\.-]+\.\w{2,4}$/i)) { alert("E-mail address not valid"); return false; } if (objForm.email.value != objForm.emailGentag.value){ alert("E-mail do not match"); return false; }
Er det bare EN checkbox eller er det flere som skal være afkrydset??
ps. Undskyld den sene svartid, men jeg har været på skiferie i USA og kom først hjem igår :o)
Synes godt om
Ny brugerNybegynder
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.