Здравствуйте!
Есть такой код калькулятора услуг:
function makeCalc(){
$(".inputs").keypress(function() {
return true;
});
$('.sbOptions li a').on('click', function(e){
$(this).parents('.calc').find('.inputs').attr('data-price', $(this).attr('rel'));
var price = $(this).parents('.calc').find('.inputs').attr('data-price');
var total = 0;
$(this).parents('.calc').find('.inputs').on('keyup',function(){
var totalPrice = 0;
$('.inputs').each(function(){
total = $(this).attr('data-price') * $(this).val();
totalPrice += total;
});
// цена по акции
sale_count = parseInt(totalPrice / 10);
// Чекбокс "ВЫСОТНЫЕ РАБОТЫ"
$("#check1").toggle(function(){
$(this).next().addClass('calc1');
if( $("#check1").prop("checked") ){
if(totalPrice > 0){
// если чекнутый чекбокс то берем значение
// $(this).data('hightworks') каждого выбраного елемента,
// плюсуем и множим на totalPrice
var withhightworks = 0;
$('.selects').find('option:selected').each(function(){
if($('.selects').find('option:selected').val().length != 0) {
if($(this).data('hightworks') > 0 ){
$(this).data('hightworks');
withhightworks = $(this).data('hightworks');
}
}
});
$('.total_price span').html((totalPrice * withhightworks).toFixed(2) );
$('.sale_price span').html(((totalPrice * withhightworks) - sale_count).toFixed(2));
withhightworks = 0;
}
}
}, function(){
$(this).next().removeClass('calc1');
if( $("#check1").prop("checked") ){
if(totalPrice > 0){
$('.total_price span').html(totalPrice.toFixed(2));
$('.sale_price span').html((totalPrice - sale_count).toFixed(2));
}
}
}
);
$("#check2").toggle(function(){
$(this).next().addClass('calc2');
if( $("#check2").prop("checked") ){
if(totalPrice > 0){
// если чекнутый чекбокс то берем значение
// $(this).data('mkad') каждого выбраного елемента,
// плюсуем их и множим на totalPrice
var mkad = 0;
$('.selects').find('option:selected').each(function(){
if($('.selects').find('option:selected').val().length != 0) {
if($(this).data('mkad') > 0 ){
$(this).data('mkad');
mkad = $(this).data('mkad');
}
}
});
$('.total_price span').html((totalPrice * mkad).toFixed(2));
$('.sale_price span').html(((totalPrice * mkad) - sale_count).toFixed(2));
mkad = 0;
}
}
}, function(){
$(this).next().removeClass('calc2');
if( $("#check2").prop("checked") ){
if(totalPrice > 0){
$('.total_price span').html(totalPrice.toFixed(2));
$('.sale_price span').html((totalPrice - sale_count).toFixed(2));
}
}
}
);
// Итого
$('.total_price span').html(totalPrice.toFixed(2));
$('.sale_price span').html((totalPrice - sale_count).toFixed(2));
});
});
}
Есть два чекбокса:
#check1 и #check2 (например: высотные работы "withhightworks" и удаленность от кад "mkad") - умножает сумму выбранных услуг на "х" коэффициент и результат выводит на
$('.total_price span').html((totalPrice * withhightworks).toFixed(2) );
и
$('.total_price span').html((totalPrice * mkad).toFixed(2));
Проблема в том что при чеке одного из них - все работает, и показывает результат. Но например если чекнуть #check1 когда чекнут #check2 или наоборот, то в результате эти коэффициенты не суммируются. А еще, если анчекнуть одну из чекбоксов когда оба чекбокса чекнуты, то в результате показывает сумму без коэффициента.
Как сделать чтобы эти чекбоксы работали вместе и если они оба чекнуты, то в результате они суммировались?
формула такая: (сумма выбранных услуг) * (check1) * (check2)
Я только качал изучать JS, по этому мне нужен ваша помощь, помогите пожалуйста разобраться.
Заранее огромное спасибо!
вот ХТМЛ:
<div>
<div class="blue_title">Стоимость услуг (калькулятор)</div>
<div class="img_wrapp1">
<div class="calc">
<select class="selects" name="" tabindex="1">
<option value="">Выберите услугу</option>
[!Ditto? &tpl=`price_tpl` &parents=`5` &depth=`3`!]
</select>
<input class="inputs" type="number" data-price="135" value="" placeholder="Количество">
</div>
<div class="calc">
<select class="selects" name="" tabindex="1">
<option value="">Выберите услугу</option>
[!Ditto? &tpl=`price_tpl` &parents=`5` &depth=`3`!]
</select>
<input class="inputs" type="number" data-price="140" value="" placeholder="Количество">
</div>
<div class="addbutton">
<img src="/assets/templates/makrofort/img/addButton.png">
<span>Добавить еще</span>
</div>
<div class="checkbox">
<input class="price_type" id="check1" type="checkbox" name="check" value="check1">
<label class="checkbox_label" for="check1">Высотные работы</label>
<input class="price_type" id="check2" type="checkbox" name="check" value="check2">
<label class="checkbox_label" for="check2">Удаленность от КАД более 10 км</label>
</div>
<div class="price_block">
<span>Итого:</span>
<div class="total_price"><span>0,0 </span> <img src="/img/red_ruble.png"></div>
<span>Цена по акции:</span>
<div class="sale_price"> < <span>0,0 </span>  <img src="/img/green_ruble.png"></div>
</div>
</div>
</div>