Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выделить группу чекбоксов. В группе может быть только один чекбокс. (https://javascript.ru/forum/dom-window/6800-vydelit-gruppu-chekboksov-v-gruppe-mozhet-byt-tolko-odin-chekboks.html)

JooZ 23.12.2009 18:07

Выделить группу чекбоксов. В группе может быть только один чекбокс.
 
<html>
<head>
<script type="text/javascript">
function checkAll(oForm, cbName, checked)
{
for (var i=0; i < oForm[cbName].length; i++) oForm[cbName][i].checked = checked;
}
</script>
</head>

<body>
<form name="form1" method="post" action="">
<input type="checkbox" name="total" value="checkbox" onClick="checkAll(this.form,'checkbox[]',this.checked)">Отметить все
<br>
<input type="checkbox" name="checkbox[]" value="checkbox">1
<br>
<input type="checkbox" name="checkbox[]" value="checkbox">2
<br>
<input type="checkbox" name="checkbox[]" value="checkbox">3
</form>
</body>
</html>


Этот код прекрасно работает, но только если количество чекбоксов в группе больше 1.
Но если в группе будет только один чекбокс - то функция не срабатывает...
Почему?

Gvozd 23.12.2009 18:33

function checkAll(oForm, cbName, checked)
{
if(oForm[cbName].length)
	for (var i=0; i < oForm[cbName].length; i++)
		oForm[cbName][i].checked = checked;
else
	oForm[cbName].checked = checked;
}

прошу
проблема в том, что когда чекбокс один, то oForm[cbName] уже не список элементов(точнее не список из одного элемента), а сам элемент уже

JooZ 23.12.2009 19:28

Понятно)
Спасибо огромное)


Часовой пояс GMT +3, время: 04:17.