не складываются значения checkbox

236
03 мая 2017, 10:46

function onclickCheckbox(cb1,cbv1) { 
  var cb = document.getElementsByName('check1')[cb1]; 
  if (cb.checked) { 
    var cbv=cbv+parseInt(document.getElementsByName('check1')[cb1].value); 
    document.getElementsByName('chires')[cbv1].value=cbv; 
 
}};
 <input type="checkbox" name="check1" class="liver_1" value="5"onclick="onclickCheckbox(0,0)"> 
<label for="liver_1" class="liver_1">если у вас болит печень 1</label><br> 
<input type="checkbox" name="check1" class="liver_1" value="3" onclick="onclickCheckbox(1,0)"> 
<label for="liver_1" class="liver_1">если у вас болит печень 1</label><br> 
<input type="text" name="chires" value="0" size="5"> 
Нарушение порядка 'чи' печени(застой 'чи'). 
<br>

Answer 1
var summ = 0;
for (var i = 0; i<document.getElementsByTagName ("input").length; i++) {
    if (document.getElementsByTagName ("input")[i].type == "checkbox") {
        var num = parseInt (document.getElementsByTagName ("input")[i].value)
        summ += num;
        if (i==document.getElementsByTagName ("input").length-1) {
            alert (summ);
        };
  };
};

Получение суммы текстбоксов. Без всяких имён :)

Answer 2

Не складывается из-за ошибки в коде. Переменная cbv не определена на момент использования.

Также есть логическая ошибка - после снятия галочки значение не вычитается

Должно быть как-то так:

function onclickCheckbox(cb1,cbv1) { 
  var cb = document.getElementsByName('check1')[cb1]; 
  var sum_node = document.getElementsByName('chires')[cbv1]; 
  var current = parseInt( sum_node.value ); 
 
  if(cb.checked) { 
    var cbv=current+parseInt(cb.value); 
  } else { 
    var cbv=current-parseInt(cb.value); 
  } 
  sum_node.value=cbv; 
};
 <input type="checkbox" name="check1" class="liver_1" value="5"onclick="onclickCheckbox(0,0)"> 
<label for="liver_1" class="liver_1">если у вас болит печень 1</label><br> 
<input type="checkbox" name="check1" class="liver_1" value="3" onclick="onclickCheckbox(1,0)"> 
<label for="liver_1" class="liver_1">если у вас болит печень 1</label><br> 
<input type="text" name="chires" value="0" size="5"> 
Нарушение порядка 'чи' печени(застой 'чи'). 
<br>

READ ALSO
Как сделать подобную анимацию?

Как сделать подобную анимацию?

Как сделать такую анимацию движения, как у этих (игра 2048) кубиков?

228
JQuery Кнопка, реагирующая на зону нажатия

JQuery Кнопка, реагирующая на зону нажатия

Как сделать кнопку, которая будет отклоняться в сторону курсора при нажатии? Те

269
Не работает запрос и ответ от сервер AJAX JSON JavaScript Java Servlet

Не работает запрос и ответ от сервер AJAX JSON JavaScript Java Servlet

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

239
Проблема с скроллом на jQuery

Проблема с скроллом на jQuery

По клику на кнопку должно скролить на секцию ниже, но выбивает ошибку Uncaught TypeError: Cannot read property 'top' of undefinedПодскажите в чем ошибка

227