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

Проверка суммы для чекбокса
Добрый день. Извините за дублирование темы, получилось определить проблему более локально. Суть:
есть чекбоксы:
<form id="num3" name="num3" class="hide2" >
<h2>Заголовок</h2>
<input type="checkbox" name="thirdStep" id="cb1" onchange="checkCB();" /> ch1 <br />
<input type="checkbox" name="thirdStep" id="cb2" onchange="checkCB();"/> ch2 <br /> 
<input type="checkbox" name="thirdStep" id="cb3" onchange="checkCB();"/> ch3 <br /> 
<input type="checkbox" name="thirdStep" id="cb4" onchange="checkCB();"/> ch4 <br /> 
</form>

<!--Блок для вывода результата-->
<div id="cost">
</div>


Нужно что бы при выборе какого либо из чекбоксов в результат добавлялось число, а при снятии галки это же число убиралось.
пробовал так(для первого чекбокса):
//проверяем нажатие чекбокса
function checkCB(){
  var cb1 = document.getElementById("cb1");
  if(cb1.checked) {
    c=0;
    updatePrice(6, 3);
  }else{
    c= 0;
    updatePrice(-4, 3);
  }
  
}

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

}

a,b две глобальные переменные из других функций. Дело точно не в них, отключал те функции, результат не менялся.
Сейчас такая беда: нажимаю на чекбокс 1 раз происходит +6, всё в порядке, нажимаю 2 раз(снимаю галку) происходит -10. Снова ставлю +10. Так эту 10 туда сюда и гоняю. Вопрос, как с этим бороться? Почему он суммирует числа из чек и анчек?
Ответить с цитированием