xayos
xayos

Reputation: 19

Javascript - float value from an HTML input in table cell

It's part of the larger task. Why is the problem Nan and how to solve it? The table is added together elements from several pools <input> which elemenatymi table. All code is summed up in the table of size k / d.

Why is the problem Nan and how to solve it?

function licz(tableID){
 var table = document.getElementById(tableID);
 var k, d, s=0, temp;
 var i = table.rows.length;
      for(k=1; k<=i; k++){
          for(d=0; d<2; d++){
temp = parseFloat(document.getElementById(tableID).rows[k].cells[d].innerHTML);
alert(temp);
s=s+temp;
          }
document.getElementById(tableID).rows[k].cells[d].innerHTML = s;
              
     } 
}
<form name="roz" action="">
<table id="tyg" class="product_values" style="width: 20%" border=1>
<tr>
  <td> Pon </td>
  <td>  Wt </td>
  <td> Sum </td>
</tr><tr>
<td> <input type="number" name="inp_a" ></td>
  <td> 4 </td> 
  <td></td>        
</table>
</form>
<button onclick="licz('tyg')">go</button>

Upvotes: 1

Views: 1438

Answers (1)

g1ji
g1ji

Reputation: 1129

This is not right way for getting value from child elements you should do something like this :

JavaScript:

  function licz(tableID){
     var table = document.getElementById(tableID);
               var k, d, temp;
               var i = table.rows.length;

               for (k = 1; k <= i; k++) {
                   for (d = 0; d < 2; d++) {
                       if (d == 0) {
                           temp = parseFloat(document.getElementById(tableID).rows[k].cells[d].childNodes[1].value);
                       }
                       if (d == 1) {
                           temp = temp + parseFloat(document.getElementById(tableID).rows[k].cells[d].innerHTML);
                       }
                   }
                   document.getElementById(tableID).rows[k].cells[d].innerHTML = temp;
                   document.getElementById('num').v
               }
           }

HTML:

        <table id="tyg" class="product_values" style="width: 20%" border=1>
        <tr>
            <td> Pon </td>
            <td>  Wt </td>
            <td> Sum </td>
        </tr>
        <tr>
            <td> <input id = 'num' type="number" name="inp_a" ></td>
            <td> 4 </td> 
            <td></td>
        </tr>
    </table>

well... it's a good question. You should read DOM for knowing more about this.

Upvotes: 1

Related Questions