Avatar billede cyperangel Nybegynder
10. april 2002 - 22:06 Der er 3 kommentarer og
1 løsning

validering af dato igen igen.....

eh. jeg fik rettet et par fejl, men det virker stadig ikke, så her følger den forsamlede html fil, med form og script og hele baduljen.
Det virkede fint indtil jeg tilføjede den del der burde tjekke om datoen er ok. Så jeg gætter på at den laver rod i et eller andet, sikkert noget banalt, for jeg er totalt nybegynder.....
På forhånd tak for venligheden


<html>
<head>
<title>Indmeldelse</title>
<style>
    body    {font-family:Book Antiqua}
    a:link    {text-decoration:none; text-transform:none; color:black}
    a:active    {text-decoration:none; text-transform:none; color:black}
    a:visited    {text-decoration:none; text-transform:none; color:black}
</style>
<script language="JavaScript">

function valider()
{
    w1 = document.minform.fornavn.value;
    if (w1.length < 2) {
        alert("For få bogstaver.\nKrav om mindst 2!");
        document.minform.fornavn.focus();
        return false;
    }


    for (t=0; t<w1.length; t++) {
        w2 = w1.charAt(t);
        if (!(w2 >= "a" && w2 <= "z")|| w2=="æ" || w2=="ø" || w2=="å" || (w2 >="A" && w2<="Z") || w2=="Æ"

|| w2=="Ø" ||  w2=="Å" ) {
            alert("Navn indeholder ulovligt tegn!")
            document.minform.fornavn.focus();
            return false;
        }
    }

    e1 = document.minform.email.value;
    if (e1.length<6) {
        alert("For få tegn!");
        document.minform.email.focus();
        return false;
    }

    e2=e1.split("@");
    if (!(e2.length == 2 && e2[0].length > 0 && e2[1].length > 0)) {
        alert ("E-mail @-fejl!");
        document.minform.email.focus();
        return false;
    }

    e3 = e2[1].split(".")
    e3l = e3.length;
    if (e3l < 2) {
        alert ("E-mail mangler!");
        document.minform.email.focus();
        return false;
    }

    for (t=0; t<e3l; t++){
        if (e3[t].length == 0){
            alert ("E-mail mangler domæaneangivelse");
            document.minform.email.focus();
            return false;
        }
        if (t == (e3l-1)) {
            if (e3[t].length < 2){
                alert ("E-mail topdomæne for kort");
                document.minform.email.focus();
                return false;
            }
        }

    }

    t1 = document.minform.telefon.value;
        if (t1.length < 8) {
                alert("For få tal i nummeret. Skriv venligst mindst 8 tal.");
                document.minform.telefon.focus();
                return false;
            }
        for (t=0; t<t1.length; t++) {
            t2 = t1.charAt(t);
            if (!(t2 >= "0" && t2 <= "9")) {
                  alert("TLF nummeret indeholder ulovligt tegn! Brug venligst kun tal.");
                    document.minform.telefon.focus();
                    return false;
            }
    }

   
    wdd1 = document.minform.dato.value;
    wmm1 = document.minform.maaned.value;
    wyy1 = document.minform.aar.value;
    wdd = wdd1 - 0;
    wmm = wmm1 - 0;
    wyy = wyy1 - 0;
    wdato = checkdato(wdd,wmm,wyy);
   
    switch (wdato) {
        case 1:
            alert("Der er en fejl i dagen.");
            document.minform.dato.focus();
            return false;
        break;

        case 2:
            alert("Der er en fejl i måneden.");
            document.minform.maaned.focus();
            return false;
        break;

        case 3:
            alert("Der er en fejl i året.");
            document.minform.aar.focus();
            return false;
        break;

    }




return true;
}


funktion checkdato(dd,mm,yy) {

    if (! (mm >= 1 && mm <= 12))
        return 2;
        leap = 31;
    if (mm == 4 || mm == 6 || mm == 9 || mm == 11)
        leap = 30;
    if (! (yy >= 1900 && yy <= 2100))
        return 3;
    if (mm == 2) {
        leap = 28;
        if (yy % 400 == 0)
            leap = 29;
        else
            if ((!(yy % 100 == 0)) && (yy % 4 == 0))
                leap = 29;
    }
    if (! (dd >= 1 && dd <= leap))
        return 1;
}
</script>

</head>
<body onLoad="document.minform.fornavn.focus();" bgcolor="#BF8e41">
<img src="./img/topbar3.jpg" align="center">
<h2 align="center">Indmeldelse i kaffeklubben</h2>
<p> &nbsp; &nbsp; &nbsp; &nbsp; For at kunne benytte dig af kaffeklubbens muligheder for at spille spil,

snakke med andre brugere<br> og
sende indslag til debatforrummerne, er du nødt til at blive oprettet som bruger. <br>Dine oplysninger vil

kun
blive brugt til dette, og vil ikke kunne læses af andre.</p>

<table border="0" bgcolor="#FFCC67" width="750">
<tr>
<td width="70%">


<form action="http://localhost/hitme.php" method="POST" name="minform" onSubmit="return valider();">


    <p align="left">Efternavn: &nbsp; &nbsp; &nbsp; <input type="text" maxlength=32" size="16"

Name="fornavn"></p>
    <p align="left">E-mail: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<input type="text" maxlength=32"

size="16" Name="email"></p>
    <p align="left">Telefon: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<input type="text" maxlenght="16"

size=16" Name="telefon">(Eks. 86195226)</p>
    <p align="left">Født: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<input type="text"

maxlenght="2" size=2" Name="dato">Dag&nbsp;(Eks 27)&nbsp; &nbsp;<input type="text" <input type="text"

maxlenght="2" size=2" Name="maaned">Måned&nbsp;(Eks 03 )&nbsp; &nbsp;<input type="text" <input type="text"

maxlenght="4" size=4" Name="aar">År&nbsp;(Eks. 1962)</p>
    <p align="left">Brugernavn:&nbsp;&nbsp;<input type="text" maxlenght="32" size=16"

Name="brugernavn"> Dette er det navn du bliver kendt<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; under når du bruger kaffeklubben.</p>
    <p align="left">Password: &nbsp; &nbsp;&nbsp;<input type="text" maxlenght="32" size=16"

Name="password"> Vælg et password du nemt kan<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;

&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; huske.</p>
    <p align="left"><input type="submit" value="send" >&nbsp;&nbsp;&nbsp;&nbsp; <input type="reset"

value="reset" ></p>
    <p>Alle felter skal udfyldes.</p>
</form>
</td>
<td width="30%"><img src="./img/kaffekop2.jpg"></td>
</tr>
<tr>
<td width="100%">Når du har udfyldt og sendt skemaet, lukker du bare dette vindue.</td>
</tr>
</table>
</body>
</html>
Avatar billede cyperangel Nybegynder
10. april 2002 - 22:19 #1
et par ekstra kommentarer:
Som sagt virkede det hele fint indtil jeg tilføjede det følgende til koden:

    wdd1 = document.minform.dato.value;
    wmm1 = document.minform.maaned.value;
    wyy1 = document.minform.aar.value;
    wdd = wdd1 - 0;
    wmm = wmm1 - 0;
    wyy = wyy1 - 0;
    wdato = checkdato(wdd,wmm,wyy);
   
    switch (wdato) {
        case 1:
            alert("Der er en fejl i dagen.");
            document.minform.dato.focus();
            return false;
        break;

        case 2:
            alert("Der er en fejl i måneden.");
            document.minform.maaned.focus();
            return false;
        break;

        case 3:
            alert("Der er en fejl i året.");
            document.minform.aar.focus();
            return false;
        break;

    }




return true;
}


function checkdato(dd,mm,yy) {

    if (! (mm >= 1 && mm <= 12))
        return 2;
        leap = 31;
    if (mm == 4 || mm == 6 || mm == 9 || mm == 11)
        leap = 30;
    if (! (yy >= 1900 && yy <= 2100))
        return 3;
    if (mm == 2) {
        leap = 28;
        if (yy % 400 == 0)
            leap = 29;
        else
            if ((!(yy % 100 == 0)) && (yy % 4 == 0))
                leap = 29;
    }
    if (! (dd >= 1 && dd <= leap))
        return 1;
}

men nu sender den bare formen uden at kommentere om jeg har for lidt bogstaver i navnet, ingen tal i telefonnummeret og så videre. ting som den ellers skulle råbe vagt i gevær over.
Det virker som om det ovenfor simpelthen bare ødelægger hele koden, så der må være noget syntaks fejl et eller andet sted. jeg har nok bare stirret mig blind på det...
Avatar billede korup Nybegynder
10. april 2002 - 22:22 #2
Du kan prøve og flytte:

wdd1 = document.minform.dato.value;
    wmm1 = document.minform.maaned.value;
    wyy1 = document.minform.aar.value;
    wdd = wdd1 - 0;
    wmm = wmm1 - 0;
    wyy = wyy1 - 0;
    wdato = checkdato(wdd,wmm,wyy);

op i toppen af scriptet!!!

/korup
Avatar billede yellow Nybegynder
10. april 2002 - 22:50 #3
Taget fra din første post:
[SNIP]
funktion checkdato(dd,mm,yy) {
[SNAP]

Du har skrevet "funktion" på dansk (med k). Du har godt nok rettet det i din anden post, men hvilken version bruger du i din kode? Ret det til "function". En sådan fejl vil medføre den opførsel du beskrev.
Avatar billede yellow Nybegynder
10. april 2002 - 23:13 #4
Du kan evt. også bruge javascripts dato functioner til at validere dato med:

function checkDato( dd,mm,yyyy ){
  var tempDate = new Date( yyyy, mm - 1, dd );
  return ((dd==tempDate.getDate())&&((mm - 1)==tempDate.getMonth())&&(yyyy==(tempDate.getYear()+((yyyy >= 1900 && yyyy <=1999)?1900:0))))?true:false;
}
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