|
|
|
| Здравствуйте! Есть такая вот проблема, нужно выделить все чекбокси с таким именем
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="">
|
без квадратних скобок, работает нормально, а с ними выдает ошибку. | |
|
|
|
|
|
|
|
для: Саша
(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>
<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>
|
| |
|
|
|
|
|
|
|
для: Саша
(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
(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 не писать? | |
|
|
|