Javascript.RU

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

Функция суммирует значения флажков без сброса
Здравствуйте!
Есть функция, передающая значения отмеченных флажков в группе, 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>

Если присваивание в первой функции сделать так как во второй, будет подставляться одно (последнее) значение. Если отметить один чекбокс, будет одно значение, если еще один (другой), то: один+один+другой; если снять флажки с отмеченных, то остаются их значения...
Если не трудно - подскажите пожалуйста - в чем проблема, или ссылку на пример.
Спасибо!

Последний раз редактировалось Agard, 22.01.2016 в 15:34.
Ответить с цитированием
  #2 (permalink)  
Старый 22.01.2016, 15:58
Профессор
Отправить личное сообщение для Keramet Посмотреть профиль Найти все сообщения от Keramet
 
Регистрация: 30.12.2015
Сообщений: 194

Добавь
document.getElementById('vozvratp').innerHTML = '';

перед циклом for
Ответить с цитированием
  #3 (permalink)  
Старый 22.01.2016, 16:07
Новичок на форуме
Отправить личное сообщение для Agard Посмотреть профиль Найти все сообщения от Agard
 
Регистрация: 10.11.2013
Сообщений: 3

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;

}

- работает как и должно!
Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 22.01.2016, 16:09
Новичок на форуме
Отправить личное сообщение для Agard Посмотреть профиль Найти все сообщения от Agard
 
Регистрация: 10.11.2013
Сообщений: 3

Сообщение от Keramet Посмотреть сообщение
Добавь
document.getElementById('vozvratp').innerHTML = '';

перед циклом for
Я сначала только код увидел. Мануал - после того, как поставил уже.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция для изменения значения input-a goooooch jQuery 5 23.10.2015 16:38
значения отмеченных флажков Sveta Общие вопросы Javascript 10 29.10.2012 08:39
Вычисление значения выражения без eval Matre Общие вопросы Javascript 6 19.11.2011 12:04
Функция не работает без jQuery(function() { shilinpavel jQuery 1 26.10.2011 10:05
функция должна возвращать объект без одного свойства blackzub Общие вопросы Javascript 4 14.12.2009 19:25