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> |
Всё работает
<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> |
Спасибо, да сделал на отдельной страничке .... все работает
а вот на моей основной нет , наверное дело в том что я вывожу список чебоксов из массива циклом 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> Хотя по идеи должно же работать |
> а вот на моей основной нет , наверное дело в том что я вывожу список чебоксов из массива циклом
Да, проблема вполне может быть в этом. Если код вынесен в отдельный скрипт, то на тестовой страничке этот код будет успевать загружаться перед кодом, вставленным жестко, а на тяжёлой боевой странице код будет загружаться позже. Можно попробовать отложить выполнение er до события ready jquery |
Цитата:
|
Подскажите а на что накладывать событие ready .... я что ни могу понять на функцию вроде не логично, на форму еще более не логично
|
Может быть так ???
<script> jQuery(document).ready(function er(){ var str = $("#zxc").serialize(); $("#results6").text(str); }); $(":checkbox, :radio").click(er); er(); </script> Я правильно двигаюсь или совсем не правильно ? |
Sadist_dead, 50/50. Идея использовать document ready верная, но текущая реализация никуда не годится.
|
Спасибо думаю...
Цитата:
|
Может быть так ???№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 тогда скорее не причем, но я тогда не могу понять почему предыдущий вариант был не правилен ? |
:blink:
|
Голова взрывается
не пойму , подскажите где нормально можно по читать про document ready уже все что можно облазил |
Help me Help me Help me
<script> jQuery(document).ready(function (){ function er(){ var str = $("#zxc").serialize(); $("#results6").text(str); }; $(":checkbox, :radio").click(er); er(); </script> После загрузки страницы произойдет вызов функции er я правильно понимаю если правильно то что тогда не так ???:help: |
Смотрите консоль ошибок.
|
То есть я правильно понял как это работает ???
Цитата:
|
Попробуйте — увидите.
|
<script> $(document).ready(function () { function er(){ var str = $("#zxc").serialize(); $("#results6").text(str); }; $(":checkbox, :radio").click(er); er(); }); </script> Попробовал и ужаснулся в хроме больше нет ошибок а вот в мозилле ругается на zxc.innerHTML +=fam+name+otch+'<input name="" type="checkbox" value="'+rty+'"/><br>' и более того сам список чебоксов в мозилле не выводится и в итоге в хроме список есть но значений я так и не получаю, в мозилеле вообще не работает и списка нет |
В коде в предыдущем сообщении функция er объявляется внутри обработчика ready, но не выполняется (поэтому в хроме и ничего не подгружается). Лучше всего вынести эту функцию за пределы обработчика ready, а внутри обработчика написать только её вызов - er();
Также альтернативный вариант - объявить и вызвать функцию одновременно. Тогда нужно будет дописать всего одни скобки вот так: function er(){ var str = $("#zxc").serialize(); $("#results6").text(str); }(); Выглядит экстравагантно, но зато из кода ниже получается путём добавлением всего двух символов. |
Часовой пояс GMT +3, время: 19:42. |