checkbox в калькуляторе
Доброго времени. Недавно начал изучение js. Столкнулся с проблемой чекбокса. не получается получить нужный результат.
Таким образом выглядят пункты калькулятора, это пользовательский ввод кол-ва едениц: <div class="row" data-price="100"> <div class="icon door"></div> <div class="left" data-edit="" contenteditable="true"> <span class="z">Наименование</span> </div> <div class="right"> <span data-edit="" contenteditable="true">кол-во</span> <div class="counter"><span class="minus">—</span><span class="count null">0</span><span class="plus">+</span></div></div> </div> Так скрипт: // Калькулятор var base = parseInt($('#calculator .wrapper').attr('data-base')); var settings = []; function RemoveAmount(headline) { for(var i=0; i<settings.length; i++) { if(settings[i][0]==headline) { settings[i][1]--; } if(settings[i][1]==0) { settings.splice(i, 1); } } } function AddAmount(headline, amount, price) { var price_int = parseInt(price); var newItem = [headline, amount, price_int]; if(settings.length==0) { settings.push(newItem); } else { var flag = false; var flag_i = 0; for(var i=0; i<settings.length; i++) { if(settings[i][0]==headline) { flag_i = i; flag = true; break; } } if(flag) { settings[flag_i][1]++; } else { settings.push(newItem); } } } function TotalSum(settings_array) { var sum = 0; for(var i=0; i<settings_array.length; i++) { sum += settings_array[i][1]*settings_array[i][2]; } return sum; } /* $('#calculator .wrapper .row').each(function(i, elem) { $(this).find('.right').append('<div class="counter"><span class="minus">−</span><span class="count null">0</span><span class="plus">+</span></div>'); }); */ $("#calculator .minus").on("click", function(e) { e.preventDefault(); var new_value = parseInt($(this).parent().find('.count').text())-1; var headline = $(this).parents('.row').find('.left .z').text(); if(new_value<0) { alert('Количество не может быть отрицательной величиной.'); return false; } else { $(this).parent().find('.count').text(new_value); RemoveAmount(headline); if(settings.length==0) { var result = 0; } else { var result = TotalSum(settings)+base; } result = number_format(result, 0, '.', ' '); $('#CalculatorResult, #CalculatorResultModal').text(result); } if(new_value==0) { $(this).parent().find('.count').addClass('null'); } else { $(this).parent().find('.count').removeClass('null'); } }); $("#calculator .plus").on("click", function(e) { e.preventDefault(); var new_value = parseInt($(this).parent().find('.count').text())+1; $(this).parent().find('.count').text(new_value); $(this).parent().find('.count').removeClass('null'); var headline = $(this).parents('.row').find('.left .z').text(); var price = $(this).parents('.row').attr('data-price'); AddAmount(headline, new_value, price); var result = TotalSum(settings)+base; result = number_format(result, 0, '.', ' '); $('#CalculatorResult, #CalculatorResultModal').text(result); }); function ToFormData(data) { var str = ''; for(var i=0; i<data.length; i++) { str = str+data[i].join(","); if(i!=(data.length-1)) { str = str+'='; } } return str; } Помогите советом, как сделать пункт с выбором чекбокс и отображением результата в итоговой сумме. третий день ломаю голову. Спасибо. |
Таким образом на странице делаю чекбокс:
<div class="row" data-price="1000"> <div class="icon heating"></div> <div class="left" data-edit="" contenteditable="true"> <span class="z">Чекбокс</span> </div> <div class="right"> <span data-edit="" contenteditable="true">Значение</span> <input type="checkbox" class="checkbox" id="checkbox-1"> <label for="checkbox-1"></label> </div> </div> Совершенно не ясно что прописать в скрипте, чтобы он плюсовал сумму "1000" к общей сумме... |
Часовой пояс GMT +3, время: 14:40. |