Avatar billede funkoo Nybegynder
24. oktober 2001 - 12:46 Der er 11 kommentarer og
1 løsning

Point til jakoba

Hej Jakoba,
Her er de point jeg skylder dig.
Avatar billede billeschou Nybegynder
24. oktober 2001 - 12:46 #1
ref.?
Avatar billede jakoba Nybegynder
24. oktober 2001 - 14:31 #2
billeschou >> vist en email forlængelse af http://www.eksperten.dk/spm/120892
hvordan test af formaterne kunne komme med i valideringsfunktionen.

funkoo >> du kan kun give point for spørgsmål besvaret her igennem eksperten. Email-svar er gratis ( men bør ikke tage overhånd :-)).

mvh JakobA
Avatar billede funkoo Nybegynder
25. oktober 2001 - 10:05 #3
Jo, det er rigtigt. !!
Jeg skal så nedlægge spørgsmålet?
Det gik jo hurtigere med e-mail! Jeg vidste hvem der havde svaret!
Avatar billede funkoo Nybegynder
25. oktober 2001 - 13:58 #4
Hvordan kan jeg lave en validering som sikre at inputtet af dato er rigtig? Dvs. at månede er fra 1-12 og dage 1-31 osv.
Avatar billede jakoba Nybegynder
25. oktober 2001 - 16:02 #5
Denne skulle vist have det hele med:

<script language=\'javascript\'>

function nyDato( felt ) {
    var mitFormat = /^\\d{4}-\\d{2}-\\d{2}$/; // definerer yyyy-mm-dd formatet
    if ( mitFormat.test( felt.value ) ) return false;
    var aar    = parseInt( felt.value.substring(0,4), 10 );
    var maaned = parseInt( felt.value.substring(5,7), 10 )-1;
    var dag    = parseInt( felt.value.substring(8,10),10 );
    if (  maaned>=0 && 12>maaned && dag>0 && 31>=dag )
        return new Date( aar, maaned, dag )
    else {
        return false;
    }
}; //end nydato( string ) -> Date or false

function Checkform(thisform) {
    // Startværdier
    strError = \'Der opstod følgende fejl:\\n\\n\';
    intError = 0;
    var startTid, slutTid;

    if ( !( startTid=nyDato(thisform.start ) ) {
        intError = 1;
        strError = strError + \'Indtast gyldig startdato i formatet yyyy-mm-dd.\\n\'
        thisform.start.focus();
    }

    if ( !( slutTid =nyDato( thisform.slut ) ) {
        intError = 1;
        strError = strError + \'Indtast gyldig slutdato i formatet yyyy-mm-dd.\\n\'
        thisform.slut.focus();
    }

    if ( intError==0 && startTid.valueOf() >= slutTid.valueOf() ) {
        intError = 1;
        strError = strError + \'-Slutdato skal være  efter Startdato. \\n\'
        thisform.projektslut.focus();
    }

    if (intError == 1) {
        alert(strError)
        return false;
    }
    return true;
}

</script>

mvh JakobA
Avatar billede funkoo Nybegynder
25. oktober 2001 - 17:00 #6
Det virker ikke.
Det her(nedstående) som du foreslog virker, og jeg skal kun tilføje det med måned og dage.
  <script language=\"JavaScript\">

function nyDato( tstr ) {
    var aar    = parseInt( tstr.substring(0,4), 10 );
    var maaned = parseInt( tstr.substring(5,7), 10 )-1;
    var dag    = parseInt( tstr.substring(8,10),10 );
    return new Date( aar, maaned, dag );
}

function Checkform(thisform) {
    // Startværdier
    strError = \'Der opstod følgende fejl:\\n\\n\';
    intError = 0;
    var startTid = nyDato( thisform.projektstart.value );
    var slutTid = nyDato( thisform.projektslut.value );
    var mitFormat = /^\\d{4}-\\d{2}-\\d{2}$/; // udtrykker formattet åååå-mm-dd
      if ( startTid.valueOf() >= slutTid.valueOf() )
    {
        strError = strError + \'-Slutdatoen skal være  efter startdato. \\n\'
        intError = 1;
        thisform.projektslut.focus();
    }

    //Sikre at den indtastede værdi er i korrekt format!
      if ( ! mitFormat.test( thisform.projektstart.value ) ) {
        intError += 1;
        strError += \"Start værdi overholder ikke formattet yyyy-mm-dd\\n\"
        thisform.projektstart.focus();
      }
      // test feltet slut.
      if (!mitFormat.test( thisform.projektslut.value ) ) {
        intError += 1;
        strError += \"Slut værdi overholdet ikke formattet yyyy-mm-dd\\n\"
        thisform.projektslut.focus();
      }

    if (intError > 0) {
    alert(strError)
    return false;
    }
    else {
          return true          // OK, formen må submittes
      }

}
Avatar billede jakoba Nybegynder
25. oktober 2001 - 18:21 #7
Det er nok fordi jeg kalder felterne start og slut i scriptet ovenfor, istedet for projekstart og projektslut.

    if ( !( startTid=nyDato(thisform.projektstart ) ) {
        intError = 1;
        strError = strError + \'Indtast gyldig startdato i formatet yyyy-mm-dd.\\n\'
        thisform.projektstart.focus();
    }

    if ( !( slutTid =nyDato( thisform.projektslut ) ) {
        intError = 1;
        strError = strError + \'Indtast gyldig slutdato i formatet yyyy-mm-dd.\\n\'
        thisform.projektslut.focus();
    }
Avatar billede funkoo Nybegynder
25. oktober 2001 - 19:53 #8
Det virker heller ikke!!
Er du sikker at:
function nyDato( felt ) {
    var mitFormat = /^\\d{4}-\\d{2}-\\d{2}$/; // definerer yyyy-mm-dd formatet
-->    if ( mitFormat.test( felt.value ) ) return false;
skal være sådan?
Avatar billede funkoo Nybegynder
25. oktober 2001 - 20:01 #9
Ved udfyldelse af input siger den at:
\'Indtast gyldig slutdato i formatet yyyy-mm-dd.\\n\'
Avatar billede funkoo Nybegynder
25. oktober 2001 - 20:04 #10
Ja det var det der var fejlen,
Så jeg skrev ! foran og det virkede!!
Avatar billede funkoo Nybegynder
25. oktober 2001 - 20:05 #11
Endnu engang tak,

Avatar billede jakoba Nybegynder
25. oktober 2001 - 20:07 #12
Du har sgu ret.
-->    if ( mitFormat.test( felt.value ) ) return false;
betingelsen vender den gale vej, så der returneres false når testen går godt.
det skal være:
      if ( ! mitFormat.test( felt.value ) ) return false;

sorry
mvh JakobA

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