Avatar billede submitt Nybegynder
26. maj 2006 - 16:56 Der er 3 kommentarer og
1 løsning

Hvad går der galt i mit JavaScript?

Jeg har et JavaScript, som skulle give en alert, hvis der indtastes en dato, der ligger inden for 90 dage fra dags dato. Det virker desværre ikke helt som det skal . Indtaster jeg idag (26-05-2006) datoen 01-10-2006 får jeg ikke en alert, men alt andet før den 01-10.2006 giver en alert. Og det er jo galt. Jeg burde sagtens kunne indtaste f.eks. 02-09-2006, da det ligger mere end 90 dage ud i fremtiden.

Er der nogen der kan se hvad der er galt i scriptet?

På formen bruger jeg: onSubmit="return checkNaale('startdato')"

Og selve scriptet ser således ud:

<script type="text/javascript">
function checkNaale(s){
    if ( document.getElementById('aktivitet_naale').checked ) {
        var sDate = document.getElementById(s).value
        var oDate = new Date()
        var iYear    = parseInt( sDate.substr(6) )
        var iMonth    = parseInt( sDate.substr(3,2) ) -1
        var iDay    = parseInt( sDate.substr(0,2) )
        oDate.setFullYear(iYear,iMonth,iDay)

        var oDateMax=new Date()
        oDateMax.setDate(oDateMax.getDate()+90)
        if (  oDate > oDateMax ) {
            return true
        } else {
            alert("Startdato ligge mindst 3 måneder ud i fremtiden." )
            return false
        }
    }
}
</script>

På forhånd tak!
Avatar billede nico26 Nybegynder
26. maj 2006 - 17:37 #1
var iYear    = parseInt( sDate.substr(6,4) )
var iMonth    = parseInt( sDate.substr(4,2) ) -1
Avatar billede nico26 Nybegynder
26. maj 2006 - 17:40 #2
sorry - det var kun året det var galt med

var iYear    = parseInt( sDate.substr(6,4) )
var iMonth    = parseInt( sDate.substr(3,2) ) -1
Avatar billede nico26 Nybegynder
26. maj 2006 - 17:46 #3
ok - nu skulle den være det - parseInt kan ikke lide at strengen begynder med 0

var iYear    = parseInt( sDate.substr(6,4), 10 )
var iMonth    = parseInt( sDate.substr(3,2), 10 ) -1
var iDay    = parseInt( sDate.substr(0,2), 10 )
Avatar billede submitt Nybegynder
30. maj 2006 - 15:46 #4
Hej Nico26. Har ikke set dine beskeder før i dag (30.5) og har i mellemtiden fået løst problemet.

Jeg har udskiftet de tre parseInt-linjer til nedenstående, og så virker det.

var iYear = 1 * sDate.substr(6)
var iMonth = 1 * sDate.substr(3,2) -1
var iDay = 1 * sDate.substr(0,2)
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