Javascript.RU

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

Калькулятор услуг
Здравствуйте!

Есть такой код калькулятора услуг:
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>&nbsp<img src="/img/red_ruble.png"></div>
                                <span>Цена по акции:</span>
                                <div class="sale_price"> < <span>0,0 </span> &nbsp<img src="/img/green_ruble.png"></div>
                            </div>  

                        </div>
                        
                    </div>
Ответить с цитированием
  #2 (permalink)  
Старый 11.08.2015, 08:14
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

ты зачем сюда простыни свои выкладываешь? Ты чо, писатель лев толстой? Локализуй проблему, блеать.

по сабжу
<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>
Ответить с цитированием
  #3 (permalink)  
Старый 11.08.2015, 08:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

nigga_ninja,
вы используите слишком старую версию jquery!!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен калькулятор клининговых услуг abduRahman Работа 2 08.07.2024 09:55
Калькулятор услуг tarantino Javascript под браузер 1 30.07.2015 00:21
Калькулятор услуг fabian89 Работа 22 19.11.2013 01:00
Нужен калькулятор услуг lukfm Работа 7 17.11.2013 15:15
Сделать калькулятор на сайт. asderru Работа 1 22.07.2010 13:46