Avatar billede Slettet bruger
02. januar 2008 - 20:33 Der er 2 kommentarer og
1 løsning

Validering af formular

Hej
Jeg har en formular på min hjemmeside ifm med tilmelding til et nyhedsbrev, som jeg gerne vil have valideret vha JS.

Formularen ser således ud :

<form name="minform" method="post" action="http://www.mydomain.dk/tilmeld.php">
Fornavn :
<input type="text" name="FormValue_CustomField1" value="">
Efternavn :
<input type="text" name="FormValue_CustomField2" value="">
Køn :
<input type="radio" name="FormValue_CustomField4[]" value="Male" > Mand<br />
<input type="radio" name="FormValue_CustomField4[]" value="Female" > Kvinde
Postnummer :
<input name="FormValue_CustomField7" type="text" size="8" value="" maxlength="4">
Fødselsår (kun 3 muligheder for nemheds skyld) :>
<select name="FormValue_CustomField8[]">
    <option value="-1" >Vælg her...</option>
    <option value="1980" >1980</option>
    <option value="1981" >1981</option>
    <option value="1982" >1982</option>
    </select>
e-mail :
<input type="text" name="FormValue_Email" value="">
<input type="submit" class="knapper" name="Subscribe" value="Tilmeld">
</form>

Jeg vil gerne have valideret følgende :

- fornavn : ikke tomt felt, ingen tal og min. 2 bogstaver
- efternavn : ikke tomt felt, ingen tal og min. 2 bogstaver
- Køn : ét felt valgt (enten mand eller kvinde)
- Postnummer : , ikke tomt felt, ingen bogstaver, udelukkende 4 cifre og interval fra 1000-9999
- Fødselsår : Ét felt skal være valgt (altså skal værdien være forskellig fra -1, som "vælg her"-feltet er sat til)
- email : ikke tomt felt, email skal indeholde ét @ og mindst 1 punktum, feltet må ikke indeholde adresser, der slutter på hotmail.dk og stofanet.com, og hvis det er muligt, så må det gerne tjekkes, om det indtastede domæne eksisterer.

Alt dette vil jeg gerne have skrevet ud i én alert-box, dvs. hvis intet er udfyldt i formularen, så skal alle fejlmeldinger skrives ud i én alert-box. Efterhånden som tingene bliver udfyldt korrekt, bliver denne liste således kortere...

Er der nogen, der kan/vil lave denne validering for mig? Jeg er selv et fæ til JS, så jeg HAR forsøgt men uden det helt store held.

Håber der er nogen, der kan hjælpe...

På forhånd tak
Mvh Jesper
Avatar billede fennec Nybegynder
03. januar 2008 - 08:46 #1
Sådan her:

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function vali(fForm)
{
    errMes = ""
    if(fForm.FormValue_CustomField1.value.match(/[\d]/gi) || fForm.FormValue_CustomField1.value.length <=2)
        errMes += "fejl i fornavn\n"
    if(fForm.FormValue_CustomField2.value.match(/\d]/gi) || fForm.FormValue_CustomField2.value.length <=2)
        errMes += "fejl i efternavn\n"
    if(!fForm.FormValue_CustomField4[0].checked && !fForm.FormValue_CustomField4[1].checked)
        errMes += "fejl i køn\n"
    if(!fForm.FormValue_CustomField7.value.match(/^\d{4}$/gi))
        errMes += "fejl i postnr\n"
    else
    {
        tmp = parseInt(fForm.FormValue_CustomField7.value)
        if(tmp<1000 || tmp >9999)
            errMes += "fejl i postnr\n"
    }
    if(fForm.FormValue_CustomField8.selectedIndex < 1)
        errMes += "fejl i årstal\n"
    if(!fForm.FormValue_Email.value.match(/^.+@\w[\w\.-]*\.[a-z]{2,6}$/) || fForm.FormValue_Email.value.match(/hotmail\.dk$/) || fForm.FormValue_Email.value.match(/stofanet\.com$/))
        errMes += "fejl i email\n"
    if(errMes <> "")
    {
        alert(errMes)
        return false
    }
    else
        return true
}
//-->
</SCRIPT>

<form name="minform" method="post" action="http://www.mydomain.dk/tilmeld.php" onsubmit="return vali(this)">
Fornavn :
<input type="text" name="FormValue_CustomField1" value="">
Efternavn :
<input type="text" name="FormValue_CustomField2" value="">
Køn :
<input type="radio" name="FormValue_CustomField4" value="Male" > Mand<br />
<input type="radio" name="FormValue_CustomField4" value="Female" > Kvinde
Postnummer :
<input name="FormValue_CustomField7" type="text" size="8" value="" maxlength="4">
Fødselsår (kun 3 muligheder for nemheds skyld) :>
<select name="FormValue_CustomField8">
    <option value="-1" >Vælg her...</option>
    <option value="1980" >1980</option>
    <option value="1981" >1981</option>
    <option value="1982" >1982</option>
    </select>
e-mail :
<input type="text" name="FormValue_Email" value="">
<input type="submit" class="knapper" name="Subscribe" value="Tilmeld">
</form>

ps. Jeg har omdøbt dine "array" navne. Der er ingen grund til at have [] på dem, og det er mere besværlig at arbejde med.
Avatar billede Slettet bruger
03. januar 2008 - 15:20 #2
Super, tusind tak for hjælpen, det virker bare 100 %.
Smid et svar, hvis du vil have point :-)
Avatar billede fennec Nybegynder
03. januar 2008 - 16:05 #3
.o) <-- One Eyed Jack
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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