2017-06-01 178 views
0

我正在寻找在我的表中做一些计算。表格内容来自ajax。但是对于下面的内容,计算仅完成一行(第一行)。当我试图添加。每个函数都没有发生。乘以两列,结果在另一列

Ajax代码

$.ajax({ 
     type: "Post", 
     url: '@Url.Action("function", "Controller")', 
     data: '{selectedValues: "' + selectedValues + '"}', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (data, textStatus, jqXHR) { 
      var row = ""; 
      $.each(data, function (index, item) { 
       row += "<tr class='odd'><td><input type='checkbox'></td><td class='product-title'>" + item.Name + "</td><td>" + item.MaxIssueLimit + "</td><td class='num-pallets'><input type='text' class='num-pallets-input' id='sparkle-num-pallets' max=" + item.MaxIssueLimit + " oninput='calculate()'></input></td><td class='times'>X</td><td class='price-per-pallet'><input type='text' class='num-pallets-input' id='cost' oninput='calculate()' value=" + item.UnitPrice + " disabled='disabled'></td><td class='equals'>=</td><td class='row-total'><input type='text' class='row-total-input' id='sparkle-row-total' disabled='disabled'></input></td></tr>";     
      }); 
      $("#contacts").html(row); 

     }, 
    }); 

的Javascript

function calculate() {    
     var my1 = document.getElementById('sparkle-num-pallets').value; 
     var my2 = document.getElementById('cost').value; 
     var result = document.getElementById('sparkle-row-total'); 
     var myResult = my1 * my2; 
     result.value = myResult;  
} 

任何帮助表示赞赏。在此先感谢

+0

[请不要把问题标题标签(https://stackoverflow.com/help/tagging) – Liam

回答

0

你必须乘以

的parseInt函数之前,使用parseInt()函数解析一个字符串,并返回一个整数。

document.getElementById('sparkle-num-pallets').value;返回一个字符串。

你不能乘两个字符串你有解析它们到整数。

function calculate() {    
     var my1 = document.getElementById('sparkle-num-pallets').value; 
     var my2 = document.getElementById('cost').value; 
     var result = document.getElementById('sparkle-row-total'); 
     var myResult = parseInt(my1) * parseInt(my2); // Parse the strings 
     result.value = myResult;  
} 

function calculate() { 
 
    var my1 = document.getElementById('sparkle-num-pallets').value; 
 
    var my2 = document.getElementById('cost').value; 
 
    var result = document.getElementById('sparkle-row-total'); 
 
    var myResult = parseInt(my1) * parseInt(my2); // Parse the strings 
 
    result.value = myResult; 
 
}
<table> 
 
    <tbody> 
 
    <tr> 
 
     <td><input id="sparkle-num-pallets" ></td> 
 
     <td><input id="cost" ></td> 
 
    </tr> 
 
    </tbody> 
 
</table> 
 
<button onclick="calculate()">Calculate</button> 
 
<br/> 
 
RESULT: 
 
<input id="sparkle-row-total">

+0

但我怎么能使其所有工作表中的行@Nadir Laskar – Muzz

+0

与显示的相同。你需要在进行任何计算之前将字符串解析为int或float,具体取决于你想要的内容。 –