@khazhinov

Вывод списка выбранных chekbox'ов в нужном месте?

Есть группа chekbox'ов с единым name. У каждого chekbox'а есть свой label, который привязан к id.
Задача: В нужном месте вывести содержимое label, привязанных к чекбоксам, которые отметили.
Так же при выборе последнего chekbox'a появляется дополнительное текстовое поле. Как вывести то, что туда ввели?
Вот html:
<label for="russian">Русский</label>
<input id="russian" name="language" type="checkbox">
<label for="english">Английский</label>
<input id="english" name="language" type="checkbox">
<label for="german">Немецкий</label>
<input id="german" name="language" type="checkbox">
<label for="french">Французский</label>
<input id="french" name="language" type="checkbox">
<label for="spanish">Испанский</label>
<input id="spanish" name="language" type="checkbox">
<label for="italian">Итальянский</label>
<input id="italian" name="language" type="checkbox">
<label for="chinese">Китайский</label>
<input id="chinese" name="language" type="checkbox">
<label for="oth">Другое</label> <!--for="russian"-->
<input id="oth" name="language" type="checkbox" onchange = 'showOrHide("oth", "other");'><br />
<div id = "other" style = "display: none;">
	<input id="other-input" name="language" type="text"/>
</div>

Это чекбоксы с label и дополнительное текстовое поле, которое появляется при выборе чекбокса.
А вот место, куда надо вписать всё содержимое label'ов, привязанных к выбранным чекбоксам.
<div id="languages"></div>
Понятия не имею, как подступится к задаче
  • Вопрос задан
  • 870 просмотров
Пригласить эксперта
Ответы на вопрос 2
@khazhinov Автор вопроса
Вопрос с добавлением значений чекбоксов решается просто..
jQuery(function($) {
  $('input:checkbox[name="language"]').on('click change', function() {
	var values = [];
	
	$('input:checkbox[name="language"]').filter(':checked').each(function() {
	  values.push(this.value);
	});
	
	$("#languageout").text(values.join(', '));
  });
});

Но я получаею теперь значения не из label, а из value.
Теперь как прикрутить текстовую информацию, которая выпадает по нажатию на последний checkbox?
Ответ написан
Комментировать
у инпута кажется есть свойство в доме, в котором лежит текст. Свойство имеет примерно следующий путь: labels[0].innerText
Соответсвенно твой
values.push(this.value)
заменится на
values.push(this.labels[0].textContent)
НО
Получать значения из label мне кажется глупость)
Пропиши значения в value, сделай хэш-таблицу(объект, где ключами будет value, а значениями - выводимый текст для пользователя). Или просто пропиши value =)
Другие варианты
Найти массив всех label ($$('label')), далее всех input, выбранных input, получить index выбранных input, потом вставлять текст label, соответсвующий по индексу выбранным инпутам.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы