Доброго времени. Недавно начал изучение 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;
}
Помогите советом, как сделать пункт с выбором чекбокс и отображением результата в итоговой сумме. третий день ломаю голову.
Спасибо.