2015-05-05 2 views
0

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

Сценарий:

(a+b) * c = price 
(a+b) * c = price 
(a+b) * c = price 

price + price + price = toltal

Это мой сценарий, но он не работает

$(document).ready(function() { 
    $("#form").on("keyup", ".form-calc", function() { 
     var parent = $(this).closest(".items"); 
     var sum = parent.find(".form-line").val((parent.find(".form-cost").val() + parent.find(".form-cost-skift").val()).toFixed(2)); 
     parent.find(".form-line").val((parent.find(".form-qty").val() * sum).toFixed(2)); 
     var total = 0; 
     $(".form-line").each(function() { 
      total += parseFloat($(this).val() || 0); 
     }); 
     $("#total").val(total.toFixed(2)); 
    }); 
}); 

JSFiddle

Что Я скучаю?

+0

Console говорит один из ваших toFixed() не является функцией – Taplar

+1

'(parent.find (». Форма-стоимость "). Val() + parent.find (". Форма-стоимость-skift ") .val()' является строкой, она не имеет функции 'toFixed'. –

ответ

0

Возможно, что-то вроде этого? https://jsfiddle.net/tnzcz8a3/3/

$(document).ready(function() { 
    $("#form").on("keyup", ".form-calc", function() { 
     var parent = $(this).closest(".items"); 
     var sum = 0; 
     var total = 0; 

     if (!isNaN(parent.find(".form-cost").val())) sum += +parent.find(".form-cost").val(); 
     if (!isNaN(parent.find(".form-cost-skift").val())) sum += +parent.find(".form-cost-skift").val(); 
     if (!isNaN(parent.find(".form-qty").val())) sum *= +parent.find(".form-qty").val(); 

     parent.find(".form-line").val(sum.toFixed(2)); 

     $(".form-line").each(function() { 
      total += parseFloat($(this).val() || 0); 
     }); 

     $("#total").val(total.toFixed(2)); 
    }); 
}); 
+0

Вероятно, лучший способ сделать! isNaN() – Taplar

+0

Hi Taplar. Это похоже на то, что вам очень понравилось. /Palle – pth

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