Отметить разом все checkbox'ы

Модератор: Модераторы разделов

Аватара пользователя
Dimon93rus
Сообщения: 428
Статус: Kernel Killer

Отметить разом все checkbox'ы

Сообщение Dimon93rus »

В общем суть проблемы:
Из MySQL выводятся таблица с записями, каждой строке соответсвует свой checkbox.
Необходимо по событию (например onClick на "главном" checkbox'е) выбрать сразу все checkbox'ы без перезагрузки страницы.
Я кое-как слепил функцию на Яве, но она работает только с фиксированными числом и именами checkbox'ов.
Может знатоки помогут переделать?

Код:

<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" > </head> <body> <script language="JavaScript"> <!-- function chk1() { if (document.chkform.al.checked){ document.chkform.c1.checked=true; document.chkform.c2.checked=true; } else { document.chkform.c1.checked=false; document.chkform.c2.checked=false; } } //--> </script> <form name="chkform"> <input type="checkbox" name="al" onClick="chk1()">Включить все<BR> <input type="checkbox" name="c1"> Переключатель 1 <BR> <input type="checkbox" name="c2"> Переключатель 2 </form> </body> </html>
Ubuntu Server 10.04 x86, Calculate Linux 11.6 x86
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Отметить разом все checkbox'ы

Сообщение serzh-z »

Dimon93rus писал(а):
15.04.2008 13:32
на Яве
Полагаю, что всё же имелся в виду Javascript.

Я делаю это так (с использованием библиотеки Prototype):

Код: Выделить всё

        function toggleCheckAll(checked) {
            $$("#form input[type=checkbox]").each(
                function(item) {
                    item.checked = checked;
                }
            );
        }
Где "form" - это ID контейнера содержащего флажки, состояние которых нужно изменить. Разумеется на пресловутом "главном" флажке должен быть установлен обработчик "toggleCheckAll(this.checked)". Думаю - идея понятна.
Спасибо сказали:
Аватара пользователя
Dimon93rus
Сообщения: 428
Статус: Kernel Killer

Re: Отметить разом все checkbox'ы

Сообщение Dimon93rus »

Простите меня конечно за безграмотность (т.к. с Javascript у меня пока туговато), но у меня что-то не получается......
В моём случае контейнер содержащий checkbox'ы называется chkform, я заменил значение как вы и писали, но ...... увы....
В чём может быть проблема?
Ubuntu Server 10.04 x86, Calculate Linux 11.6 x86
Спасибо сказали:
Аватара пользователя
Dimon93rus
Сообщения: 428
Статус: Kernel Killer

Re: Отметить разом все checkbox'ы

Сообщение Dimon93rus »

Всё, я решил свою проблему.
Привожу скрипт:

Код:

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Check all checkboxes</title> <script> function toggleCheckAll(blnCheck) { var el; for( var i=0; i<document.forms["myForm"].elements.length; i++ ) { el = document.forms["myForm"].elements[i]; if( el.type == "checkbox") { el.checked = blnCheck; } } } </script> </head> <body> <form name="myForm"> Check All<input type="checkbox" name="checkAll" onclick="toggleCheckAll(this.checked);"><br><br><br> Checkbox name print-0 <input type="checkbox" name="print-0"><br> Checkbox name print-1 <input type="checkbox" name="print-1"><br> Checkbox name print-2 <input type="checkbox" name="print-2"><br> Checkbox name print-3 <input type="checkbox" name="print-3"><br> Checkbox name print-4 <input type="checkbox" name="print-4"><br> Checkbox name print-5 <input type="checkbox" name="print-5"><br> Checkbox name print-6 <input type="checkbox" name="print-6"><br> Checkbox name print-7 <input type="checkbox" name="print-7"><br> Checkbox name print-8 <input type="checkbox" name="print-8"><br> Checkbox name print-9 <input type="checkbox" name="print-9"><br> Checkbox name print-10 <input type="checkbox" name="print-10"><br> Checkbox name print-11 <input type="checkbox" name="print-12"><br> Checkbox name print-12 <input type="checkbox" name="print-15"><br> </form> </body> </html>

Количество checkbox'ов может быть произвольным.......

Проблема решена, и тема может быть закрыта.
Ubuntu Server 10.04 x86, Calculate Linux 11.6 x86
Спасибо сказали: