function kanded_arvutus() 
  {
  var deebet1 = document.getElementById("deebet1").value;
  var kreedit1 = document.getElementById("kreedit1").value;
  var deebet2 = document.getElementById("deebet2").value;
  var kreedit2 = document.getElementById("kreedit2").value;


  var kokku_deebet = parseFloat(deebet1)+parseFloat(deebet2);
  document.getElementById("kokku_deebet").value = kokku_deebet.toFixed(2);   
  var kokku_kreedit = parseFloat(kreedit1)+parseFloat(kreedit2);
  document.getElementById("kokku_kreedit").value = kokku_kreedit.toFixed(2);     
  }

I to jest HTML

<input onClick="kanded_arvutus();" onChange="kanded_arvutus();" type="text" class="form-control" name="deebet'.$i.'" id="deebet'.$i.'"  placeholder="0" value="">             

<input value="" onClick="kanded_arvutus();" onChange="kanded_arvutus();" type="text" class="form-control" name="kreedit'.$i.'" id="kreedit'.$i.'"  placeholder="0">


<input type="text" class="form-control field" name="kokku_deebet" value="" id="kokku_deebet" placeholder="0">

<input type="text" class="form-control field" name="kokku_kreedit" value="" placeholder="0" id="kokku_kreedit">

A jeśli wstawię tylko wartości Kreedit1 i DEEBET1, wtedy Jquery zwraca NAN, ale jeśli wstawię Deebet2 i Kreedit2, a następnie działa.

Ktoś może zobaczyć, co tu nie tak?

Z góry dziękuję, aimar.

0
aimar 18 sierpień 2014, 13:39

2 odpowiedzi

Najlepsza odpowiedź

Sprawdź, czy zmienne nie są nullowe lub nieokreślone jak poniżej, przed dodaniem,

if (typeof(deebet1) != 'undefined' && deebet1 != null && typeof(deebet2) != 'undefined' && deebet2 != null)
{
    var kokku_deebet = parseFloat(deebet1)+parseFloat(deebet2);
    document.getElementById("kokku_deebet").value = kokku_deebet.toFixed(2);
}

if (typeof(kreedit1) != 'undefined' && kreedit1 != null && typeof(kreedit2) != 'undefined' && deebet2 != null)
{
    var kokku_deebet = parseFloat(kreedit1)+parseFloat(kreedit2);
    document.getElementById("kokku_kreedit").value = kokku_deebet.toFixed(2);
}

Jak John sugerował, możesz wystarczyć następujące, co sprawdzi, czy zmienne mają jakieś wartościowe wartości.

if (deebet1 && deebet2)
    {
        var kokku_deebet = parseFloat(deebet1)+parseFloat(deebet2);
        document.getElementById("kokku_deebet").value = kokku_deebet.toFixed(2);
    }

    if (kreedit1 && kreedit2)
    {
        var kokku_deebet = parseFloat(kreedit1)+parseFloat(kreedit2);
        document.getElementById("kokku_kreedit").value = kokku_deebet.toFixed(2);
    }
1
TBA 18 sierpień 2014, 10:00

Czytasz pusty ciąg z wartości wejściowych i próbujesz przeanalizować go jako numer. Dlatego jest Nan. Musisz sprawdzić, czy nie jest pusty (a jeśli jest pusty, ustaw wartość domyślną, może 0).

if(deebet1 != "") {

}

I tak dalej..

1
marko 18 sierpień 2014, 09:45