Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.04.2016, 13:22
Новичок на форуме
Отправить личное сообщение для Rudikus Посмотреть профиль Найти все сообщения от Rudikus
 
Регистрация: 19.04.2016
Сообщений: 2

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;
	}


Помогите советом, как сделать пункт с выбором чекбокс и отображением результата в итоговой сумме. третий день ломаю голову.
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 19.04.2016, 15:11
Новичок на форуме
Отправить личное сообщение для Rudikus Посмотреть профиль Найти все сообщения от Rudikus
 
Регистрация: 19.04.2016
Сообщений: 2

Таким образом на странице делаю чекбокс:
<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" к общей сумме...

Последний раз редактировалось Rudikus, 19.04.2016 в 15:14.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
checkbox check если значение input djonA Общие вопросы Javascript 8 14.01.2014 05:44
проблема с checkbox Chrome Элементы интерфейса 1 23.10.2013 18:05
checkbox = checkbox Слейп jQuery 2 30.01.2013 14:24
jqgrid tree and checkbox gaz2003 jQuery 0 17.12.2011 14:59
Функция disable для нескольких checkbox allforweb Элементы интерфейса 4 19.12.2010 17:51