<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
//<!--
//далее checkbox элементы обозначаю словом флаги
window.aChecked = new Array(); //глобальный массив где будем хранить выделенные флаги
function sortChecks(){
var checks = document.getElementsByName("checkbox[]"); //выбираем по имени массив флагов
window.aChecked.length = 0; //уничтожаем массив уже сохраненных флагов
var length = checks.length; //проверяем, а вообще в документе присутствуют флаги с данным именем
if(checks&&length){
for(var i=0;i<length;i++){
if(checks[i].checked){ //если флаг был выделен заносим его в конец массива
window.aChecked.push(checks[i]);
//внимание - в массиве доступна ссылка на сам чекбокс элемент - т.е. через
//window.aChecked[нужный индекс].(свойство)(метод) - можно обратиться напрямую
//к любому свойству или методу выбранного чекбокса
//пример: window.aChecked[i].value - вернет значение,
//window.aChecked[i].id - id
//window.aChecked[i].checked = false - сбросит установленный флаг
}
}
showValues(); //закомментировать или удалить - предназначена только для вывода значений с помощью alert
}
}
function showValues(){
var length = window.aChecked.length;
if(length>0){
var st = "Были установлены следующие флаги: \n"
for(var i=0;i<length;i++){
st+=window.aChecked[i].value+((i!=length-1)?', ':'');
}
}
alert(st);
}
//-->
</script>
<title>Hello!</title>
</head>
<body>
<form name="some" id="some">
<input value="Первый" id="checkbox1" name="checkbox[]" type="checkbox" /><label for="checkbox1">Первый</label><br />
<!--
имя чекбоска задается как name="checkbox[]" - со стороны сервереа при submit формы можно
просматривать значения массива $_REQUEST['checkbox'] - там будут все флаги с этим именем
либо по уникальному имени, пример: $_REQUEST['checkbox1'] (PHP example)
причем со стороны клиента с помощью js нам это позволит выбрать сразу все нужные checkbox ы - на всю
коллекцию задается одно имя name="checkbox[]" (document.getElementsByName("checkbox[]"))
и решить пробему с использованием чекбоксов предназначенных для других целей в этой же форме,
а так же группировать чекбоксы с похожей задачей для нескольких форм
-->
<input value="Второй" id="checkbox2" name="checkbox[]" type="checkbox" /><label for="checkbox2">Второй</label><br />
<input value="Третий" id="checkbox3" name="checkbox[]" type="checkbox" /><label for="checkbox3">Третий</label><br />
<input value="Четвертый" id="checkbox4" name="checkbox[]" type="checkbox" /><label for="checkbox4">Четвертый</label><br />
<input value="Пятый" id="checkbox5" name="checkbox[]" type="checkbox" /><label for="checkbox5">Пятый</label><br />
<input value="Шестой" id="checkbox6" name="checkbox[]" type="checkbox" /><label for="checkbox6">Шестой</label><br />
<input type="button" onclick="sortChecks()" value="Кто выделен?"/>
<!-- Вызов самой функции при щелчке по кнопке onclick="sortChecks()"-->
</form>
</body>
</html>