|
|
|
Supreme Being
      
участник
Last Login: 28.12.2007 15:30
Сообщ.: 245,
Visits: 2 102
|
|
| Как в сделать так чтобы нажатием на одну ссылку или кнопку были отмечены все чекбоксы с одним именем и на оборот сняты все галочки.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 26.10.2007 16:04
Сообщ.: 159,
Visits: 1 042
|
|
Можно вот так например:< form name=frm1 > < input type=checkbox name=chk1 >< br > < input type=checkbox name=chk1 >< br > < input type=checkbox name=chk1 >< br > < input type=checkbox name=chk1 >< br > < input type=checkbox name=chk1 >< br > < input type=checkbox name=chk1 >< br > < input type=button onclick='selChk("")' value='Отменить' >< br > < input type=button onclick='selChk("checked")' value='Выделить' >< br > < /form > < script > function selChk(v){ for (var i = 0; i < (document.frm1.chk1.length); i++) { document.frm1.chk1[i].checked = v } } < /script >
|
|
|
|
|
Supreme Being
      
участник
Last Login: 25.04.2007 11:57
Сообщ.: 77,
Visits: 97
|
|
| как написал бэзил мне недавно имена и ИД лучше делать уникальными так как это стандарт в веб консорциуме. То есть для себя можно, конечно, и так сделать. Но вообще лучше по другому, через классы <input type='checkbox' class='toCheck'> Чтобы чекнуть вообще все чекбоксы на странице: var cheks=window.document.body.getElementsByTagName("input"); for (var i=cheks.length-1; i>=0; i--) { if ((cheks[i].getAttribute("className", 1)=="toCheck")and(cheks[i].getAttribute("type", 1)=="checkbox")) { cheks[i].checked=v; } } Если есть форма в пределах которой мы это делаем то: var cheks=window.document.getElementById("<Имя формы>").getElementsByTagName("input"); for (var i=cheks.length-1; i>=0; i--) { if ((cheks[i].getAttribute("className", 1)=="toCheck")and(cheks[i].getAttribute("type", 1)=="checkbox")) { cheks[i].checked=v; } } этот код может содержать мелкие ошибки, я его не проверял - писал теоретически.
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
DarkSet (04.12.2006) как написал бэзил мне недавно имена и ИД лучше делать уникальными так как это стандарт в веб консорциуме.Поправка :) Уникальными должны быть только id.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 25.04.2007 11:57
Сообщ.: 77,
Visits: 97
|
|
| А, ну да, у меня имена те теги просто не поддерживали что я использовал :) Но все равно чекбоксам давать одинаковые имена бессмысленно - как потом разбирать результат?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 26.10.2007 16:04
Сообщ.: 159,
Visits: 1 042
|
|
DarkSet (05.12.2006)
А, ну да, у меня имена те теги просто не поддерживали что я использовал :) Но все равно чекбоксам давать одинаковые имена бессмысленно - как потом разбирать результат? смотря для чего, допустим есть форма со списоком вопросов и после поста значения проще получить в цикле - т.е. кода будет на 3 строчки всего
|
|
|
|
|
Supreme Being
      
участник
Last Login: 28.12.2007 15:30
Сообщ.: 245,
Visits: 2 102
|
|
| У меня ситуация такая < form name=frm1 >< input type=checkbox name=chk1[] >< br >< input type=checkbox name=chk1[] >< br >< input type=checkbox name=chk1[] >< br >< input type=checkbox name=chk1[] >< br >< input type=checkbox name=chk1[] >< br >< input type=checkbox name=chk1[] >< br > < input type=button onclick='selChk("")' value='Отменить' > < input type=button onclick='selChk("checked")' value='Выделить' > < br >< /form > < script >function selChk(v) { for (var i = 0; i < (document.frm1.chk1.length); i++) { document.frm1.chk1[i].checked = v } } тоесть формой передается не одно значение, а целый масив. Как быть в этой ситуаци? Еще вопрос Как проверить есть ли хотябы один отмеченый чекбокс? < /script >
|
|
|
|
|
Supreme Being
      
участник
Last Login: 25.04.2007 11:57
Сообщ.: 77,
Visits: 97
|
|
| В этом случае лучше вариант предложенный Серым. Проверить - елементарно, проходишь все елементы массива и проверяешь есть ли хоть один чекнутый, то есть: var cksM=window.document.getElementsByName("chk1"); var j=0; for (var i=cksM.length-1; i>=0; i--) { if (cksM[i].checked="v") { j=1; } } после этого если был хоть один чекнутый елемент будет j=1, можно поставить j+=1 тогда будем иметь количество чекнутых елементов. Можно поставть выход из цикла при нахождении первого же чекнутого елемента, дописать break после j=1
|
|
|
|