2014-11-11 5 views
0

У меня есть эта скрипка, которая прекрасно добавляет общее количество входов и изменяется при изменении входов. Но я также нуждаюсь в нем, чтобы учесть количество каждого предмета.Получите промежуточный итог входов, а затем добавьте

Таким образом, общая сумма составляет 105 долларов США, но она должна быть равна 235 долларов США, учитывая количество 3 предметов, которые составляют 65 долларов США.

Проверка скрипки покажет вам, что я имею в виду.

http://jsfiddle.net/4n7k012b/1/

 $(document).ready(function() { 

      var sum = 0; 
       //iterate through each textboxes and add the values 
       $("input[class='cmb_text_money']").each(function() { 
        //add only if the value is number 
        if (!isNaN(this.value) && this.value.length != 0) { 
         sum += parseFloat(this.value); 
        } 

       }); 

      $("#sum").html(sum.toFixed(2)); 

      $(document).on('keyup',"input[class='cmb_text_money']", function() { 
       var sum = 0; 
       //iterate through each textboxes and add the values 
       $("input[class='cmb_text_money']").each(function() { 
        //add only if the value is number 
        if (!isNaN(this.value) && this.value.length != 0) { 
         sum += parseFloat(this.value); 
        } 

       }); 

      $("#sum").html(sum.toFixed(2)); 
      console.log(sum); 

      }); 
     }); 
+0

Я ничего не смог найти в коде, учитывающем количество как множитель. Кажется, он делает именно то, что сказано, просто суммируя значение текстовых полей суммы. – Kolban

ответ

1

Вот один из способов сделать это, проходя до количества, а затем умножая с ценой, сохраняя каждую сумму в массиве, который затем суммируется в конце

$(document).on('keyup', 'input.cmb_text_money, input.cmb_text_small', function() { 
    var sum = $.map($('input.cmb_text_money'), function(item) { 
     return $(item).closest('tr').prev('tr').find('input').val() * item.value; 
    }).reduce(function(a, b) { 
     return a + b; 
    }, 0); 

    $("#sum").html(sum.toFixed(2)); 
}); 

FIDDLE

+0

Отлично. Благодаря! – user537137

Смежные вопросы