Avatar billede hjep Nybegynder
15. april 2002 - 09:03 Der er 5 kommentarer og
1 løsning

Dato validering

Jeg har et datofelt som består af ddmmåååå. Der må ikke komme skråstreger på og alt muligt andet. Jeg har så lavet en spærre at brugeren kun kan taste 8 tegn ind og at det skal være tal. Det er åbenbart ikke nok.....Kan jeg lave en spærre således at datoen der bliver tastet ind ikke er større end dagens dato?
Avatar billede korup Nybegynder
15. april 2002 - 09:13 #1
Hej
JEg ved ikke om du kan bruge dette..

<SCRIPT>
dato = new Date(document.res.dag1.value);

if (dato.getTime() <= nu.getTime())
{
  alert("Der er fejl i din start dato." + '\n' + " Datoen: " + dato.getDate());
  return false;
}
return true;
}
</SCRIPT>


/korup
Avatar billede korup Nybegynder
15. april 2002 - 09:14 #2
nu = new Date();

mangler efter

dato = new Date(document.res.dag1.value);

/korup
Avatar billede jakoba Nybegynder
15. april 2002 - 09:23 #3
Vi skal lige have den indtastede datostreng fortolket rigtigt:

var dstreng = document.formnavn.feltnavn.value;
    // eller hvordan du nu henter den.

var aar = parseInt( dstreng.substr(4,4), 10 );
var maaned = parseint( dstreng.substr(2,2), 10 ) -1;
var mdag = parseInt( dstreng.substr(0,2), 10 );

var indtastet = new Date( aar, maaned, mdag );
var ligenu = new Date();

if ( ligenu.valueOf() < indtastet.valueOf() ) {
    // det er en fremtidig dato
} else {
    // datoen er nu eller før.
}

mvh JakobA
Avatar billede hjep Nybegynder
15. april 2002 - 10:46 #4
Hej jakoba

Det driller stadigvæk. Nu har jeg slettet det andet tjek jeg havde så der kun står følgende:


function dato()

{
var inp = document.forms[0].elements[0].value;
var aar = parseInt( inp.substr(4,4), 10 );
var maaned = parseint( inp.substr(2,2), 10 ) -1;
var mdag = parseInt( inp.substr(0,2), 10 );
var indtastet = new Date( aar, maaned, mdag );
var ligenu = new Date();

if ( ligenu.valueOf() < indtastet.valueOf())
  {
    alert('dato kan ikke være efter d.d.');
    } else
    {
  alert('dato er korrekt');
    }
  return true;
}

Burde det ikke virke. Min inp er rigtig. Den har i hvert fald tidligere virket da jeg havde tjek på at brugeren tastet 8 cifre
Avatar billede jakoba Nybegynder
15. april 2002 - 12:05 #5
Ups. i linien
  maaned = parseInt( inp.substr(2,2), 10 ) -1;

havde jeg stavet parseInt med lille i som trediesidste bogstav i navnet. det skal være et stort I der.

udover det. Jo, det skulle virke.

men du skal endelige ikke fjerne dine tests på om det er præcis 8 cifre. det jeg skrev går ud fra at det er iorden og går galt hvis det ikke er.

mvh JakobA

PS: Personlig fortrækker jeg at give form og felter navne ved at skrive en
    name="etellerandet"
attribut i <form og <input kommandoerne og så bruge de navne til at adressere felterne. Så bliver adresseringen ved med at virke selvom man tilføjer et ekstra felt sidenhen.
Avatar billede hjep Nybegynder
15. april 2002 - 12:21 #6
Ups den havde jeg heller ikke set. Men det virker "selvfølelig" perfekt nu også sammen med den tidligere validering jeg havde. Tak for hjælpen
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