Avatar billede tbrg Novice
29. oktober 2004 - 10:31 Der er 5 kommentarer og
1 løsning

'is null or not an object' fejl

Jeg har lavet et lille script, med et nedtællingsur, som skal vises på en .NET-side. Jeg lavede det i et html-dokument, hvor det virkede fint, men da jeg copy/pastede scriptet over i en ascx-fil, fungerede det ikke længere.

Scriptet ser således ud:

<script LANGUAGE="JavaScript"> <!--
  var now = new Date();
  var event = new Date("Nov 10 2004 12:00:00");
  ID=window.setTimeout("update();", 1000);

  function update() {
    now = new Date();
    days = event.getDate() - now.getDate();
    hours = event.getHours() - now.getHours();
    minutes = event.getMinutes() - now.getMinutes();
    seconds = event.getSeconds() - now.getSeconds();

    if (event <= now){
    seconds = 0; minutes = 0; hours = 0; days = 0;}
    else{
        days=Math.round((event.getTime()-now.getTime())/ 86400000);
        if (seconds < 0){
        seconds += 60;
        minutes--;  }
        if (minutes < 0){
          minutes += 60;
          hours--;    }
        if (hours < 0)
            hours += 24;
    }
    document.myForm.hour.value = hours;
    document.myForm.minute.value = minutes;
    document.myForm.second.value = seconds;
    ID=window.setTimeout("update();",1000);
  } // -->
</script>

Det skal skrive til disse:

<input type="text" name="day" value="0" size="3">dage
<input type="text" name="hour" value="0" size="3">timer
<input type="text" name="minute" value="0" size="3">min.
<input type="text" name="second" value="0" size="3">sek.

Jeg får fejlmeddelelsen 'document.myForm.day is null or not an object'.

Hvad gør jeg forkert?
Avatar billede and_ Nybegynder
29. oktober 2004 - 10:56 #1
har du et form-tag udenom disse?

<input type="text" name="day" value="0" size="3">dage
<input type="text" name="hour" value="0" size="3">timer
<input type="text" name="minute" value="0" size="3">min.
<input type="text" name="second" value="0" size="3">sek.

Så der står:
<form name="myForm">
<input type="text" name="day" value="0" size="3">dage
<input type="text" name="hour" value="0" size="3">timer
<input type="text" name="minute" value="0" size="3">min.
<input type="text" name="second" value="0" size="3">sek.
</form>


Ellers kan du udskifte:
    document.myForm.hour.value = hours;
    document.myForm.minute.value = minutes;
    document.myForm.second.value = seconds;
    ID=window.setTimeout("update();",1000);

med:

    document.getElementById("hour").value = hours;
    document.getElementById("minute").value = minutes;
    document.getElementById("second").value = seconds;
    ID=window.setTimeout("update();",1000);
Avatar billede tbrg Novice
29. oktober 2004 - 11:02 #2
Tak for hjælpen. Det virkede. Smid et svar for point.
Avatar billede and_ Nybegynder
29. oktober 2004 - 11:07 #3
takker ;)

Hvaffor en af mulighederne valgte du?

Og lige en hurtig forklaring, til andre som måtte læse denne tråd:

hvis man referer til et objekt med document.FORMNAVN.objektet skal man huske at lave en form i scriptet som omkranser det pågældende objekt.

Browseren kan ikke finde objektet, hvis formen ikke eksisterer.
Dette kan man så omgå ved at bruge getElementById() som kan lokalisere objektet ud fra navn/id
Avatar billede tbrg Novice
29. oktober 2004 - 11:18 #4
Jeg brugte getElementById(). Worked like a charm....!
Avatar billede tbrg Novice
29. oktober 2004 - 11:21 #5
Fik du pointene?
Avatar billede and_ Nybegynder
29. oktober 2004 - 11:50 #6
Jeg takker for points ;)
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