Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: 1 общий checkbox
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » 1 общий checkbox

Страниц (1): [1]
 

1. DarkRevenger - 07 Июня, 2011 - 09:10:10 - перейти к сообщению
Подскажите как сделать 1 общий чекбокс для всего списка элементов, ну чтобы 1 отметил и сразу отметились все.
2. SAD - 07 Июня, 2011 - 10:05:06 - перейти к сообщению
примеров в сети куча
3. zypikov - 07 Июня, 2011 - 18:11:54 - перейти к сообщению
Помойму это лучше делать js-скриптом. Вы же, наверное, хотите что чекбоксы отмечались динамически без перезагрузки страницы? У меня такая необходимость появилась, когда я столкнулся с лентой новостей. Чтобы, допустим, выделились все новости подлежащие удалению. В сущности тут хорошо надо понимать DOM-модель страницы и никаких проблем быть не должно)) Вот пример скрипта из сети.
CODE (javascript):
скопировать код в буфер обмена
  1. // работаем со всеми checkbox на указанной форме
  2. function sd_checkbox_status(_form_name,_status,_name)
  3. // form_name - название формы
  4. // status - присвоить статус; 0 - все отменить. 1 - всем включить; 2 - поменять местами
  5. // name - имя checkbox`s (чекбоксов)
  6. { // делаем короткий объект для обращений к форме
  7.  var f=document.getElementById(_form_name);
  8.  var name_='';
  9.  var str='';
  10.  name_=(typeof(_name)=='undefined')?'del':_name;// служит для сокращения писанины на формах
  11.  for (i=1;i<=f.length;i++)// пройтись по всем элементам на HTML форме
  12.  { if (f.elements[i-1].type=='checkbox')// если тип элемента checkbox, то
  13.   { str=f.elements[i-1].name;
  14.    if (sdf_str_pos(str,name_)<1) { continue; }// если checkbox не подходящий
  15.    switch(_status)
  16.    { case(0): { f.elements[i-1].checked=false; break; }// сбрасываем значения
  17.      case(1): { f.elements[i-1].checked=true; break; }// устанавливаем значения
  18.      case(2): { f.elements[i-1].checked=!f.elements[i-1].checked; break; }// меняем местами
  19.    }
  20.   }
  21.  }
  22.  }


Вызов прост:

CODE (javascript):
скопировать код в буфер обмена
  1. // обнуляет все checkbox с приставкой del_ на форме form_name
  2. sd_checkbox_status('form_name',0,'del_');
  3.  
  4. // включает все checkbox с приставкой del_ на форме form_name
  5. sd_checkbox_status('form_name',1,'del_');
  6.  
  7. // Меняет все значения checkbox с приставкой del_ на форме form_name
  8. sd_checkbox_status('form_name',2,'del_');


Не знаю почему, но автор не разместил описание функции sdf_str_pos(str,name_).
Она позволят находить чекбосы с определ. именем и отмечать только их. Закомментируйте это строчку все будет работать. Только выделяться все чекбоксы, независимо от имени.
4. DlTA - 07 Июня, 2011 - 18:33:27 - перейти к сообщению
zypikov, удобно ли пользоваться подобными именами:
zypikov пишет:
_form_name,_status
?
я имею введу подчеркивание перед именем.

 

Powered by ExBB FM 1.0 RC1