Показать сообщение отдельно
  #1 (permalink)  
Старый 24.09.2013, 10:16
Аватар для new_guy
Интересующийся
Отправить личное сообщение для new_guy Посмотреть профиль Найти все сообщения от new_guy
 
Регистрация: 09.08.2011
Сообщений: 27

Некоректная сумма для checkbox
Добрый день. Собственно вопрос такой, на странице есть 3 формы. 2 с радио кнопками, одна с чекбоксами, и в зависимости от выбранных пунктов изменяется итоговая цена. С радио кнопками всё в порядке, а с чекбоксом 1 раз прибавляется нормальное значение, потом вычитается это значение умноженное на 2, включаю чекбокс, и прибавляется снова умноженное 2. Т. е. по первым элементам 55+10=65, 65+5=70. Снимаю чекбокс 70-5=... 60. Ставлю чекбокс 60+5=70...
var a=0, b=0, c=0;

//проверяем первую форму
function checkForm1(){
	var firstBlock = document.getElementsByName("firstStep");
	var summ1;
	var here = 1;
	
	for(var i=0; i<firstBlock.length; i++){
		if(firstBlock[i].checked){
			a = 0;
			if(i == 0){
				summ1 = 55;
				updatePrice(summ1, here);
			}else if(i == 1){
				summ1=3;
				updatePrice(summ1, here);
			}else if(i == 2){
				summ1=4;
				updatePrice(summ1, here);
			}else if(i == 3){
				summ1=45;
				updatePrice(summ1, here);
			}
			
		}
	}
}

//проверяем вторую форму
function checkForm2(){
	var secondBlock = document.getElementsByName("secondStep");
	var summ2;
	var here = 2;
	
	for(var i=0; i<secondBlock.length; i++){
		if(secondBlock[i].checked){
			 b=0;
			if(i == 0){
				summ2 = 10;
				updatePrice(summ2, here);
			}else if( i == 1){
				summ2 = 33;
				updatePrice(summ2, here);
			}else if( i == 2){
				summ2 = 34;
				updatePrice(summ2, here);
			}
		}
	}
	
}

//проверяем 3ю форму
function checkForm3(cb){
	var here = 3;
	
	cb = document.getElementById("cb1");
	c=0;
	if(cb == cb1){
		if(cb.checked){
			updatePrice(-5, here);
		}else{
			updatePrice(-5, here);
			
		}
	}
}

//считаем и выводим результат.
function updatePrice(sum, whereCome){
	
	var place = document.getElementById("cost");
	place.innerHTML = '';
	var span = document.createElement("span");
	if(whereCome == 1){
		a = sum;
	}
	if(whereCome == 2){
		b = sum;
	}if(whereCome == 3){
		c = sum;
	}
	
	span.innerHTML = "<h1>Стоимость составит: " + (a+b+c)+"</h1>";
	place.appendChild(span);

}
Ответить с цитированием