Онлайн калькулятор
Здравствуйте, при создании калькулятора, столкнулся с проблемой в формуле. Мне необходимо, что бы считалось вот так:
файл script.js
price = (typ*L+L+B)*H;
если в цифрах то это так: price = (0,5*4+4+6)*2,4; ответ выдает 20
но действие typ*L не выполняется, как я понимаю повторно один и тот же параметр не берется?
Можно весь код файла script.js.
Если вы используете val(), тогда переменные нужно еще обработать parseInt(), если значения дробные, тогда нужно обрабатывать функцией parseFloat().
//Онлайн калькулятор
(function ($){
$(document).ready(function() {
var typ, L, B, H, price;
$('<div class="price"></div>').insertBefore($('#edit-actions'));
function changePrice(){
typ = $('#webform-component-typ input:checked').val();
L = $('#webform-component-L input:checked').val();
B = $('#webform-component-B input:checked').val();
H = $('#webform-component-H input:checked').val();
if(typ&&L&&B&&H){
typ = parseInt(typ);
L = parseInt(L);
B = parseInt(B);
H = parseInt(H);
price = (typ*L+L+B)*H;
price = Math.round(price);
$('.price').html('<p> Стоимость сруба:<strong>' + price + 'руб.</strong></p>');
}
}
$('#webform-client-form-13 #edit-submitted-typ,#webform-client-form-13 .webform-component-radios input').bind('click change', function(){
changePrice();
});
});
})(jQuery);
Странно, конечно, но попробуйте отдельную переменную ввесли для вычисления typ*L.
спасибо, проблема была в функции поставил parseFloat() и все заработало.