Autor Zpráva
majo80
Profil *
Zdravím.
V tabuľke pridávam riadky pomocou javascriptu a zároveň pomocou neho aj zrátavam niektoré hodnoty.
Pri načítaní stránky mám automaticky vložený jeden riadok - v tomto funkcia na rátanie funguje normálne.
Akonáhle ale pridám (pomocou javascriptu) nový riadok, chybová konzola mi pri vypočítaní hlási že položka ktorá sa má zrátať je prázdna (is null).

Živá ukážka je tu:http://euws.prekop.sk/admin/faktury_vytvorit.php

Ďakujem za radu kde je chyba. Už to pozerám hodinu a neviem na to prísť.

Majo


ešte upresním: násobí sa jednotková cena x množstvo a výsledok sa zobrazí v Celková cena. Počítanie je automaticky pri udalosti onKeyDown a onKeyUp na políčkach Jednotková cena a množstvo.
Darker
Profil
Dělej mezery mezi atributy
<input name="jcena1" id="jcena1" size="10" class="xsmall" type="text" onKeyDown="spocitaj(1);" onKeyUp="spocitaj(1);">

$(document).ready(function(){
  
  $("#test").find("input[type=button]").click(function(){
  
  
    var porcislo=parseInt(document.getElementById("porcislo").value);
    p=parseInt(1);


    var newporcislo = porcislo + p;
     document.getElementById('porcislo').value = newporcislo;
   
     $(this).parents("tr").before('<tr><td>'+newporcislo+'</td><td align="center"><div class="field"><input name="polozka'+newporcislo+'" size="60" class="xsmall" type="text"></div></td><td align="center"><div class="field"><input name="jcena'+newporcislo+'" id="jcena'+newporcislo+'" size="10" class="xsmall" type="text" onKeyDown="spocitaj('+newporcislo+');"onKeyUp="spocitaj('+newporcislo+');"> €</div></td><td align="center"><div class="field"><input name="mnozstvo'+newporcislo+'" size="10" id="mnozstvo'+newporcislo+'"  class="xsmall" type="text" onKeyDown="spocitaj('+newporcislo+');"onKeyUp="spocitaj('+newporcislo+');"> ks</div></td><td align="center"><div class="field"><input name="ccena'+newporcislo+'" size="10" class="xsmall" type="text"> €</div></td></tr>');
  
  });
  
});

function spocitaj(polozka){  
    if(typeof console == "object")
       console.log(polozka);
    jcena = document.getElementById('jcena'+polozka).value;
   mnozstvo=document.getElementById("mnozstvo"+polozka).value;
   jcena = jcena.replace(/,/g, '.');
   vysledok = jcena*mnozstvo;
   document.getElementById('ccena'+polozka).value = vysledok;
}



Daleko lepší je přiřazovat eventy před načtením html přímo do html jako atributy. Po načtení je naopak přehlednější pracovat s DOMem.
majo80
Profil *
Ďakujem, práve som chybu našiel, chýbalo mi tam priradenie ID k elementom v tých nových riadkoch....
Darker
Profil
Oprav si i ty ostatní.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: