Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: выделить все чекбокси
 
 автор: Саша   (06.11.2005 в 16:43)   письмо автору
 
 

Здравствуйте! Есть такая вот проблема, нужно выделить все чекбокси с таким именем

function select_all (obj)
{
for (j = 0; j < obj.length; j++){ 
            obj[j].checked = true; 
        }
}

<a href="#" onClick="select_all(g[])">ccc</a>
<input type="checkbox" name="g[]" class=cl value="">
<input type="checkbox" name="g[]" class=cl  value="">
<input type="checkbox" name="g[]" class=cl value="">
<input type="checkbox" name="g[]" class=cl value="">

без квадратних скобок, работает нормально, а с ними выдает ошибку.

   
 
 автор: elenaki   (06.11.2005 в 17:31)   письмо автору
 
   для: Саша   (06.11.2005 в 16:43)
 

я делала так - выделяла все элементы формы минус 1 (это для кнопки сабмит)

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function checkAll()
{ numCheckbox = f2.length; 
for (i = 0; i < numCheckbox; i++)
   {   document.f2.elements[i].checked = true;
  }
}
function uncheckAll()
{ numCheckbox = f2.length - 1; 
for (i = 0; i <= numCheckbox; i++)
   {  document.f2.elements[i].checked = false;
  }
}
//-->
</SCRIPT>

<form name="f2">

<a href="#" onClick="checkAll()">ccc</a> &nbsp;&nbsp;&nbsp;
<a href="#" onClick="uncheckAll()">bbb</a> 
<input type="checkbox" name="g[]" class=cl value=""> 
<input type="checkbox" name="g[]" class=cl  value=""> 
<input type="checkbox" name="g[]" class=cl value=""> 
<input type="checkbox" name="g[]" class=cl value=""> 

</form>

   
 
 автор: 12345   (06.11.2005 в 22:40)   письмо автору
 
   для: Саша   (06.11.2005 в 16:43)
 

> а с ними выдает ошибку
Конечно, потому что синтаксическая конструкция неправильная. Тут можно выйти из положения тем, что давать строку в параметре:
<script>d=document;function select_all(priznak){for (j in d.all){
    if(j.indexOf(priznak)>=0)d.getElementById(j).checked=!0;
}}</script> 
<a href="#" onClick="select_all('g1[');return!1">ccc</a> 
<input type="checkbox" name="g1[1]" class=cl>
<input type="checkbox" name="g1[2]" class=cl> 
<input type="checkbox" name="g1[3]" class=cl> 
<input type="checkbox" name="g1[4]" class=cl> 
<input type="checkbox" name="g1[5]" class=cl>
Здесь ID (равный name) написан не по правилам JS, поэтому извлечь его можно по строке.

   
 
 автор: 12345   (09.11.2005 в 02:48)   письмо автору
 
   для: 12345   (06.11.2005 в 22:40)
 

Дополнение. Задавшись целью сделать кроссбраузерный код, получил такое:
<!--Выделение  всех чекбоксов при нестандартных именах IE,FF-->
<script>d=document;function select_all(priznak){for (j in d.getElementsByTagName('INPUT')){
    if((n=d.getElementsByTagName('INPUT')[j].name)
           && n.indexOf(priznak)>=0)
            d.getElementsByTagName('INPUT')[j].checked=!0;
}}</script>
<a href="#" onClick="select_all('g1[');return!1">ccc</a> 
<form><input type="checkbox" name="g1[0]" class=cl>
<input type="checkbox" name="g1[2]" class=cl> 
<input type="checkbox" name="g1[3]" class=cl> 
<input type="checkbox" name="g1[4]" class=cl> 
<input type="checkbox" name="g1[5]" class=cl>
В Опере совсем не работает,но интереснее другое - как растёт код. Кто придумает лучшее решение при условии, что id не писать?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования