[JS] Uitrekenen hoelang iemand over invullen doet

Pagina: 1
Acties:

  • TerraGuy
  • Registratie: Februari 2001
  • Laatst online: 17-06-2023

TerraGuy

The weirdo with the beard

Topicstarter
Ik wil een klein en simpel javascriptje maken waarmee ik kan zien hoelang iemand over het invullen van een formulier heeft gedaan.
Niet zo'n ster zijnde in javascript, heb ik eerst maar even bedacht hoe ik dat wil gaan doen. Mijn idee is als volgt:

Er worden twee variabelen gemaakt, var begintijd en var eindtijd.
Het eerste invulveldje krijgt een onClick waarmee ik de huidige tijd vastlegt in var begintijd, in milliseconden sinds 1970.
De 'Verstuur'-button krijgt een onClick die weer de huidige tijd in milliseconden sinds 1970 vastlegt, nu in var eindtijd.

Dan rest mij nog het van elkaar aftrekken van var eindtijd en var begintijd in var verstreken tijd.

Nu de uitprobeercode (waar ik btw veels te lang over gedaan heb), maar het werkt niet zoals ik wil; als je over link één gaat dan moet hij dus de begintijd vastleggen, over link twee gaan is de eindtijd vastleggen, en de laatste link geeft een alert met daarin het eindresultaat 0? Wat doe ik fout?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<html>
  <head>
    <title>Millisec</title>
    <script type="text/javascript">

      var begintijd = new Date()
      var eindtijd = new Date()
      var totaal = (eindtijd - begintijd)/1000

    </script>
  </head>
  <body>

  <a href="http://www.tweakers.net" onMouseOver="begintijd.getTime()">Begintijd vastleggen</a>
  <br />
  <br />
  <br />
  <a href="http://www.tweakers.net" onMouseOver="eindtijd.getTime()">Eindtijd vastleggen</a>
  <br />
  <br />
  <br />
  <a href="http://www.tweakers.net" onMouseOver="alert(totaal)">Gimme gimme gimme de verstreken tijd</a>
  </body>
</html>

Iedereen kan gelijk hebben, allemaal tegelijk. Dat heb je met quantum.


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Je initialiseert de variabelen begintijd, eindtijd en totaal tijdens de opbouw van de pagina. Deze worden op dat moment ge-set op de huidige datum/tijd. Terwijl je deze eigenlijk zou willen instellen bij de onmouseover eventhandler.

Bij de onmouseover voor de verstreken tijd vraag je op dit moment het verschil op van de eerder vastgestelde datums. Vandaar de waarde 0 bij totaal, er zit een verwaarloosbaar verschil tussen die datums aangezien ze op "hetzelfde" moment zijn vastgesteld.

Wat je dus moet doen is het set-ten van de tijd in een functie gieten die je onmouseover aanroept. Bijvoorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
  <head>
    <title>Millisec</title>
    <script type="text/javascript">
      var begintijd, eindtijd;

      function zetdetijd()
      {
        return new Date().getTime();
      }
    </script>
  </head>
  <body>

  <a href="http://www.tweakers.net" 
    onmouseover="begintijd = zetdetijd();">Begintijd vastleggen</a>
  <br />
  <br />
  <br />
  <a href="http://www.tweakers.net" 
    onmouseover="eindtijd = zetdetijd();">Eindtijd vastleggen</a>
  <br />
  <br />
  <br />
  <a href="http://www.tweakers.net" 
    onmouseover="alert((eindtijd-begintijd) / 1000)">De verstreken tijd</a>
  </body>
</html>

[ Voor 30% gewijzigd door Annie op 11-05-2004 23:05 . Reden: opmaak ]

Today's subliminal thought is:


  • TerraGuy
  • Registratie: Februari 2001
  • Laatst online: 17-06-2023

TerraGuy

The weirdo with the beard

Topicstarter
Hee, bedankt! Dat was inderdaad wat ik zocht! Nu begin ik wat meer te begrijpen van het nut van functies enzo. :)

Iedereen kan gelijk hebben, allemaal tegelijk. Dat heb je met quantum.