Функция суммирует значения флажков без сброса
Здравствуйте!
Есть функция, передающая значения отмеченных флажков в группе, html: <input name="form[vozvrat][]" type="checkbox" value=" С возвратом" id="vozvrat0" onchange = "getvozvrat()" /> <input name="form[vozvrat][]" type="checkbox" value=" Выходной день" id="vozvrat1" onchange = "getvozvrat()" /> <input name="form[vozvrat][]" type="checkbox" value=" Специальное поручение" id="vozvrat2" onchange = "getvozvrat()" /> function getvozvrat() { var j; for(j=0;j<document.getElementsByName('form[vozvrat][]').length;j++) if (document.getElementById('vozvrat'+j).checked) document.getElementById('vozvratp').innerHTML += " " + document.getElementById('vozvrat'+j).value; } Если отметить все флажки, получится: С возвратом С возвратом Выходной день С возвратом Выходной день Специальное поручение. При том, что надо: С возвратом, Выходной день, Специальное поручение. В javascript очень слабо понимаю, но догадываюсь - нет сброса. Хотя, код ниже (только для радиокнопок) работает нормально. var i; for(i=0;i<document.getElementsByName('form[rejim]').length;i++) if (document.getElementById('rejim'+i).checked) document.getElementById('rejimp').innerHTML = document.getElementById('rejim'+i).value; Передача происходит сюда: <span id="vozvratp">.</span> Если присваивание в первой функции сделать так как во второй, будет подставляться одно (последнее) значение. Если отметить один чекбокс, будет одно значение, если еще один (другой), то: один+один+другой; если снять флажки с отмеченных, то остаются их значения... Если не трудно - подскажите пожалуйста - в чем проблема, или ссылку на пример. Спасибо! |
Добавь
document.getElementById('vozvratp').innerHTML = ''; перед циклом for |
Keramet,
Спасибо! Не сразу сообразил - куда именно вставить, но: function getvozvrat() { document.getElementById('vozvratp').innerHTML = ''; var j; for(j=0;j<document.getElementsByName('form[vozvrat][]').length;j++) if (document.getElementById('vozvrat'+j).checked) document.getElementById('vozvratp').innerHTML += " " + document.getElementById('vozvrat'+j).value; } - работает как и должно! Спасибо! |
Цитата:
|
Часовой пояс GMT +3, время: 16:56. |