Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    errore NaN in una variabile di uno script js

    ciao a tutti... ho fatto il seguente script che da un form preleva un paio di campi e calcola la media oraria..ma se visualizzo il valore del tempo tarsformato da stringa a float mi da un errore NaN! come fa a considerarlo non un numero?

    codice:
    function calcAvgSprint(oForm) {
      var iLength = parseInt(oForm.lengthS.value);
      var sTime = oForm.timeS.value;
      if (iLength) {
        if (sTime) {
          if (sTime.indexOf(':')) {
            var aTime = sTime.split(':');
            var iMinutes = parseInt(aTime[0] * 60);
            var fSeconds = parseFloat(aTime[1]);
            var fTime = iMinutes + fSeconds;
          } else
              var fTime = parseFloat(sTime);
          // se passo un valore solo in secondi (senza il carattere ':' che separa i minuti dai secondi)
          // qui da un errore NaN per fTime! sembra che parseFloat non funzioni...perchè?
          alert("sTime="+sTime+"; fTime="+fTime);
          if (fTime)
            oForm.speedS.value = formatAverage((parseInt(iLength) / fTime) * 36);
          else
            message("wrong time!");
        } else
            message("missing time!");
      } else
          message("missing length track");
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    hai provato a mettere un alert prima di parseFloat per verificare che la variabile sTime sia effettivamente un numero?

  3. #3
    se vedi l'alert subito sotto il messaggio, quello che mi appare ad esempio è

    sTime=55.8; fTime=NaN

    proprio non riesco a capire...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    if (sTime.indexOf(':') != -1) {
    ...
    }else{
     var fTime = parseFloat(sTime);
    }
    alert("sTime="+sTime+"; fTime="+fTime);

  5. #5
    ho messo come hai detto....solito errore come prima...

    sTime=55.8; fTime=NaN

    se metto un : per separare i minuti dai secondi mi da un valore corretto

    sTime=1:22.8; fTime=82.8

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    riposta tutto il codice con le modifiche che ti ho fatto fare...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.