Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   checkbox проверка нажатия (https://javascript.ru/forum/dom-window/21148-checkbox-proverka-nazhatiya.html)

Sadist_dead 30.08.2011 16:05

checkbox проверка нажатия
 
Есть форма в нее выводятся список checkbox
хочу проверить каких из них нажаты и результат поместить в div

дулею следующие
<form id="zxc" name="zxc">
тут список чебоксов
</form>

<script>
    function er() {
      var str = $("form").serialize();
      $("#results6").text(str);
    }
    $(":checkbox, :radio").click(er);
   
    er();
</script>


<div id="results6"></div>
помещать то он помещает только не значения этой формы а совсем другой
которая находиться выше этой...
как обратиться скриптом по id
Делаю так не работает

<script>
    function er() {
      var str = $("#zxc").serialize();
      $("#results6").text(str);
    }
    $(":checkbox, :radio").click(er);
   
    er();
</script>

B@rmaley.e><e 30.08.2011 17:04

Всё работает
<script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<form>lalala</form>
<form id="zxc" name="zxc">
<input type="checkbox" name="ch1" value="lalala1" checked />
<input type="checkbox" name="ch2" value="lalala2" checked />
<input type="checkbox" name="ch3" value="lalala3" />
<input type="checkbox" name="ch4" value="lalala4" />
<input type="checkbox" name="ch5" value="lalala5" checked />
</form>
<div id="results6"></div>
<script>
    function er() {
      var str = $("#zxc").serialize();
      $("#results6").text(str);
    }
    $(":checkbox, :radio").click(er);
   
    er();
</script>

Sadist_dead 30.08.2011 17:18

Спасибо, да сделал на отдельной страничке .... все работает
а вот на моей основной нет , наверное дело в том что я вывожу список чебоксов из массива циклом
html = '';

for(var i = 0; i < data.length; ++i) {
  var rty = data[i]['id_user'] + '\n';
   var name = data[i]['name'] + '\n';
      var fam = data[i]['fam'] + '\n';
	       var otch = data[i]['otch'] + '\n';
zxc.innerHTML +=fam+name+otch+'<input name="" type="checkbox" value="'+rty+'"/><br>'


}

<form id="zxc" name="zxc">

</form>
<div id="results6"></div>
<script>
    function er() {
      var str = $("#zxc").serialize();
      $("#results6").text(str);
    }
    $(":checkbox, :radio").click(er);
    
    er();
</script>

Хотя по идеи должно же работать

crayday 30.08.2011 17:25

> а вот на моей основной нет , наверное дело в том что я вывожу список чебоксов из массива циклом

Да, проблема вполне может быть в этом. Если код вынесен в отдельный скрипт, то на тестовой страничке этот код будет успевать загружаться перед кодом, вставленным жестко, а на тяжёлой боевой странице код будет загружаться позже.

Можно попробовать отложить выполнение er до события ready jquery

Sadist_dead 30.08.2011 17:53

Цитата:

Сообщение от crayday (Сообщение 123567)
> а вот на моей основной нет , наверное дело в том что я вывожу список чебоксов из массива циклом

Да, проблема вполне может быть в этом. Если код вынесен в отдельный скрипт, то на тестовой страничке этот код будет успевать загружаться перед кодом, вставленным жестко, а на тяжёлой боевой странице код будет загружаться позже.

Можно попробовать отложить выполнение er до события ready jquery

Спасибо направление понятно буду думать

Sadist_dead 30.08.2011 18:01

Подскажите а на что накладывать событие ready .... я что ни могу понять на функцию вроде не логично, на форму еще более не логично

Sadist_dead 30.08.2011 18:42

Может быть так ???
 
<script>
jQuery(document).ready(function er(){
  
	var str = $("#zxc").serialize();
	 $("#results6").text(str);
});
$(":checkbox, :radio").click(er);
     
    er();
 
  
	
</script>

Я правильно двигаюсь или совсем не правильно ?

B@rmaley.e><e 30.08.2011 18:44

Sadist_dead, 50/50. Идея использовать document ready верная, но текущая реализация никуда не годится.

Sadist_dead 30.08.2011 18:48

Спасибо думаю...
 
Цитата:

Сообщение от B@rmaley.e><e (Сообщение 123594)
Sadist_dead, 50/50. Идея использовать document ready верная, но текущая реализация никуда не годится.

Спасибо думаю...

Sadist_dead 30.08.2011 19:18

Может быть так ???№2
 
<script>
jQuery(document).ready(function xox(){
     function er(){
  
	var str = $("#zxc").serialize();
	 $("#results6").text(str);
};
$(":checkbox, :radio").click(er);
     
    er();
 
});
</script>

как я понимаю что когда dom загружен и функция xox( которая формирует список чебоксов ) то выполнять функцию er

или имеется ввиду
что когда дом загружен выполнять функцию er и функция xox вообще не причем ? ведь она же формирует dom тогда скорее не причем, но я тогда не могу понять почему предыдущий вариант был не правилен ?


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