Вот сделка.Задача состоит в том, чтобы написать функцию, которая сможет определять количество флажков, отмеченных для каждого вопроса, и запрашивать у пользователя, если было выбрано более 3 ответов.У меня всего 8 вопросов, и на каждый вопрос от 4 до 8 ответов в формате флажков.Вот что я придумал:
function countChecks(){
var m = 0;
var n = 0;
chk = document.getElementsByName("DSelectionID");
for(var i=0; i<myitems.length i=""></myitems.length>
var value = myItems[i];
for(n = 0; n < value.length; n++) {
if(value[n].checked) {
m++;
}
}
return m;
}
вышеупомянутая функция отлично работает для одного вопроса и возвращает 'm' основной функции, которая обрабатывает это следующим образом:
var check = countchecks();
if (check > 3)
alert ("more than 3 checkboxes were selected");
else {
//do the thing
}
чтобы перебрать все 8 вопросов, это то, что я придумал:
function countChecks(){
var m = 0;
var n = 0;
// это захватывает идентификаторы для правильных вопросов
chk = document.getElementsByName("DSelectionID");
chk2 = document.getElementsByName("DSelectionID2");
chk3 = document.getElementsByName("DSelectionID3");
chk4 = document.getElementsByName("DSelectionID4");
chk5 = document.getElementsByName("DSelectionID5");
chk6 = document.getElementsByName("DSelectionID6");
chk8 = document.getElementsByName("DSelectionID8");
chk9 = document.getElementsByName("DSelectionID9");
var myItems = new Array();
myItems[0]= chk;
myItems[1]= chk2;
myItems[2]= chk3;
myItems[3]= chk4;
myItems[4]= chk5;
myItems[5]= chk6;
myItems[6]= chk8;
myItems[7]= chk9;
// перебирает все вопросы для (var i = 0; i var value = myItems [i];
// перебирает флажки для каждого вопроса
for(n = 0; n < value.length; n++)
{
if( value[n].checked)
{
m++;
if (m > 3) {
return false;
}
}
}
}
}
, и основная часть обрабатывает его следующим образом:
var check = countChecks()
if (check == false)
alert ("more than 3 checkboxes were selected");
else {
//do the thing
}
Это что-то очень простое, что мне не хватает в функции countChecks (). Есть идеи?