2013-06-21 190 views
0

对于发票应用程序,我想查找明智的总行和总计,这些行使用嵌套形式创建。它是为第一行工作,当我改变折扣的价值,但我想这为所有行。计算行明智总计和总计

这是我的代码。

$(".hr").each(function() { 
    row = $(this).parent("td").parent(); 
    total = 0; 
    qnt  = 0; 
    rate  = 0; 
    discount = 0; 
    $(row).find("td input.hr")on("change",function(index) { 
     if ($(this).val() !== "") { 
      if ($(this).hasClass('quantity')){ 
       qnt = parseFloat($(this).val()); 
      } 
      if($(this).hasClass('rate')){ 
       rate = parseFloat($(this).val()); 
      } 
      if($(this).hasClass('discount')){ 
       discount = parseFloat($(this).val()); 
      } 
      return total = (qnt*rate)-(discount) 
     } 
    }); 
    $(row).find("td input.total").val(total); 
    $('#invoice_grand_total').val(total) 
}); 

<tr> 
<td><%= f.text_field :item_name %></td> 
<td><%= f.text_field :description %></td> 
<td><%= f.text_field :quantity, :class => 'quantity hr' %></td> 
<td><%= f.text_field :rate, :class => 'rate hr' %></td> 
<td><%= f.text_field :discount, :class => 'discount hr' %></td> 
<td> 
    <td><%= f.text_field :total, :class => 'total', :disabled => true %></td> 
</tr> 
+0

你应该提供更多的信息,比如你在什么时候陷入困境,你做了什么来解决它等等。这不是一个人们只是在等待测试一些随机代码做某事的地方。 – Stan

回答

0

,当你调用这个$(".hr").each(代码,我不知道,但是当你的.hr要素发生变化,因为val(total)声明这些字段是on功能外它不会更新input.total#invoice_grand_total
除了返回on函数中的总数之外,还要在其中设置值。