Avatar billede horsmark Nybegynder
16. september 2001 - 16:06 Der er 4 kommentarer og
1 løsning

dato & tid validater

Jeg har en inputbox hvor brugeren skriver dato og tid. eks. \"0-12-01 15:45\" mit script virker egentligt godt nok MED mindre det er august måned eller september ?????

Hvad f... er der galt - jeg har stirret mig blind på det.

dtInput er her min inputbox (submitform.datoinput)

function validatedate(dtInput) {
// Denne funtion tjecker datoen og tiden dvs. dd-mm-yy OG tt:nn
    if (dtInput.value!=\"\") {
        if (dtInput.value.length!=14) {
          alert(\"Dato og tid skal skrives på formen MM-DD-ÅÅ TT:MM\\n\\neks:\\n24-12-01 15:45\");
                return false;
        }
        if (dtInput.value.charAt(2)!=\"-\" || dtInput.value.charAt(5)!=\"-\" || dtInput.value.charAt(8)!=\" \" || dtInput.value.charAt(11)!=\":\") {
          alert(\"Datoen skal skrives på formen MM-DD-ÅÅ\");
          return false;
        }
        var dd=parseInt(dtInput.value.substring(0,2));
        var mm=parseInt(dtInput.value.substring(3,5));
        var yy=parseInt(dtInput.value.substring(6,8));
        var tt=parseInt(dtInput.value.substring(9,11));
        var nn=parseInt(dtInput.value.substring(12,13));
        if (mm<1 || mm>12 || dd<1 || dd>31) {
          alert(\"Ulovlig dato\");
          return false;
        }
        if (tt>23 || nn>59 ) {
          alert(\"Ulovlig tid\");
          return false;
        }
        if (yy>=70) { yyyy=yy+1900 } else { yyyy=yy+2000; }
        d=new Date(yyyy,mm-1,dd,0,0,0,0);
        if (d.getFullYear()!=yyyy || (d.getMonth()+1)!=mm || d.getDate()!=dd) {
          alert(\"Ulovlig dato\");
          return false;
        }
    }
        SubmitForm.submit();
}
Avatar billede nute Nybegynder
16. september 2001 - 16:09 #1
hmmm....det finnes en ferdig \"validator\" her...kan du bruke den...
Avatar billede nute Nybegynder
16. september 2001 - 16:10 #2
Avatar billede horsmark Nybegynder
16. september 2001 - 16:12 #3
nej jeg har været inde og kigge på den før men det kræver at jeg har flere selectboxe og jeg har IKKE plads til mere end én inputbox derfor *pis*
Avatar billede jakoba Nybegynder
16. september 2001 - 17:12 #4
Din alert tekst modsiger sig selv dag og måned bytter plads:

\"Dato og tid skal skrives på formen MM-DD-ÅÅ TT:MM

  eks:
  24-12-01 15:45\"

når du aflæser 2 cifrede tal der kan være mindre end 10 skal du passe på at angive radix i dit parseInt() kald. Foranstillede nuller får parseint til at tro det er radix-8 medmindre du udtrykkeligt siger det ikke er. Og så giver tallene \'08\' og \'09\' fejl

        var dd=parseInt(dtInput.value.substring(0,2),10);
        var mm=parseInt(dtInput.value.substring(3,5),10);
        var yy=parseInt(dtInput.value.substring(6,8),10);
        var tt=parseInt(dtInput.value.substring(9,11),10);
        var nn=parseInt(dtInput.value.substring(12,13),10);

radix er den anden parameter.

mvh JakobA

Avatar billede horsmark Nybegynder
17. september 2001 - 10:11 #5
takker jakoba for en løsning
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

IT-JOB

Politiets Efterretningstjeneste

Centerchef til Center for Applikationer i PET

KMD A/S

Test Consultant

Capgemini Danmark A/S

AI/Data Engineer

Politiets Efterretningstjeneste

Data engineer til PET

HusCompagniet A/S

Senior data engineer