Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   вывести все val чекбоксов на странице (https://javascript.ru/forum/events/44848-vyvesti-vse-val-chekboksov-na-stranice.html)

ninzzo 04.02.2014 07:29

вывести все val чекбоксов на странице
 
На странице есть чекбоксы:

//подключение jquery 
<input type="checkbox" name="id[]" value="12">
<input type="checkbox" name="id[]" value="123">
<input type="checkbox" name="id[]" value="17">
<input type="checkbox" name="id[]" value="12233">

<div id="testing"></div>

<script>
var test = $("input[name='id[]']:checked").val();
</script>


Как мне вывести в id="testing" те которые я выбрал ?
Вот допустим, 123 и 17 ?!

$('#testing').html(test); - не выводит. Может нужно как то вывести массив? Вообщем подскажите плиз!

Cuntmann 04.02.2014 14:30

<input type="checkbox" name="id[]" value="12">
<input type="checkbox" name="id[]" value="123">
<input type="checkbox" name="id[]" value="17">
<input type="checkbox" name="id[]" value="12233">

<div id="testing"></div>

<script>
var inps=$("input[name='id[]']");
inps.change(function(){
var ololo='';
inps.each(function(){if($(this).is(':checked')){ololo+=$(this).val()+'; ';}});
$('#testing').html(ololo);
});
</script>

ninzzo 04.02.2014 21:20

Отлично работает!

А как сделать что бы при загрузке страницы сразу запустился этот код?

ну тоесть сейчас в div тестинг вносятся данные только когда я клацну на чекбокс. А нужно что бы после загрузки страницы если выбран чекбокс то он уже там был. Спасибо!

kostyanet 05.02.2014 12:28

Живкерижуть.

// дарят вам массив из элементов, сейчас - чекбоксов.
var c = document.getElementsByName('id[]');

var v = [];
for(var i=0;i<c.length;i++)
  if(c[i].checked))
   v.push(c[i].value);

div.innerHtml=v.join(''<br/>");


Потому что чек-бокс может быть не только нажат, но и отжат самоочевидно. Доставать из иннерхтмля то, что отжато это не упасть-отжаться.

И еще, специально для такого рода отчетов есть элемент output.

kostyanet 05.02.2014 13:06

Цитата:

Сообщение от ninzzo
А нужно что бы после загрузки страницы если выбран чекбокс то он уже там был. Спасибо!

Значит надо сразу после загрузки все проверить.
function report_ch(name, cont_id) {

  var elems = null;
  var cont = null;

 var check_all = function() {
  var res = [];
  for(var i=0;i<elems.length;i++)
   if(elems[i].checked))
     res.push(elem.value);
  cont.innerHTML = res.join('<br/>');
 };

// __construct
(function(){

 if(!name)
   return false;

  var cont = document.getElementById(cont_id);
 if(!cont)
   return false;

 var c = document.getElementsByName('id[]');

 if(!c.length)
   return false;

  elems=[];  

  for(var i=0;i<c.length;i++) {
    c[i].addEventListener('change', check_all, false);
    elems[i] = c[i] ;
  }

   check_all(); // сразу и проверяем

  }
})();

}


в конце страницы соответственно

<script type="text/javascript">check_ch('id[]', 'testing');

Cuntmann 05.02.2014 13:15

было бы забавно еще делать анализ нажатий (в минуту/час/день/месяц/год/с начала Эпохи Unix) и выводить прогноз вероятных нажатий в будущем в различных вариантах (таблица/график/чарт/и т.п.). если подойти к вопросу творчески, тут есть где развернуться


Часовой пояс GMT +3, время: 04:12.