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

Передача переменных между функциями
Доброго времени суток.

Прошу помочь с решением проблемы. На странице несколько блоков с чекбоксами и полями для ввода количества для подсчёта. Вот таких:

<div>    
    <p><label><input type="checkbox" id="price_1" value="1500"> Добавить к раcсчёту</label></p>
    <p><label>Количество <input type="tel" id="qtty_1"></label></p>
    <p><label>Стоимость: <input type="tel" id='total_1'></label></p>
</div>


Сделать так, чтобы в одном блоке стоимость считалась только при отметке чекбокса я смог. Вот так:

$('#price_1').change(function () {

		var chbox_1 = $('#price_1').is(':checked');
				
		if (chbox_1 == true) {
			
			var qtty_1 = $('#qtty_1').val();
			var price_1 = $('#price_1').val();
			var total_1 = price_1 * qtty_1;
			$('#total_1').val(total_1);
			
			$('#qtty_1').change(function () {
				var qtty_1 = $('#qtty_1').val();
				var total_1 = price_1 * qtty_1;
				$('#total_1').val(total_1);
			});

		} else {$('#total_1').val(null);}
});


Во втором блоке - делаю всё тоже самое, только меняю ID элементов, в скрипте создаю ещё одну такую же функцию и меняю имена переменных (типа qtty_2, price_2, total_2, и т.д.). В третьем - то же самое, соответственно. И так далее...

Но так как таких вот блоков на странице несколько (около 20, типа наименования товаров), нужно, чтобы выводилась итоговая стоимость в блоке снизу. Но как сделать, чтобы total_1 и total_2 (и total_3 и т.д.) складывались - не могу сообразить. Это ж вроде локальные переменные получаются.

P.S. Думаю, и так понятно, что я новичок в этом деле. Нутром чувствую, что подобные манипуляции вообще не комильфо, и всё можно реализовать гораздо проще и более компактно. Так что буду признателен за ваши варианты, если вам будет не сложно.

Ну или хотя бы подскажите, как сложить промежуточные суммы, которые получаются в каждой из функций.

Заранее спасибо.
Ответить с цитированием