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>
4

1 回答 1

0

我不知道您何时调用此$(".hr").each(代码,但它不会更新input.total以及#invoice_grand_total您的.hr元素何时更改,因为val(total)这些字段的语句在on函数之外。
不要在函数中返回总数,而是在其中on设置值。

于 2013-09-16T15:26:05.130 回答