Калькулятор услуг
Здравствуйте!
Есть такой код калькулятора услуг: 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> |
ты зачем сюда простыни свои выкладываешь? Ты чо, писатель лев толстой? Локализуй проблему, блеать.
по сабжу <html> <head> </head> <body> <input id="first" type="checkbox"> <input id="second" type="checkbox"> <script> first.onclick=second.onclick=function(){ var another=this===first? second : first if(this.checked&&another.checked) alert("both checked") } </script> </body> </html> |
nigga_ninja,
вы используите слишком старую версию jquery!!! |
Часовой пояс GMT +3, время: 08:08. |