这是交易。任务是编写一个函数,该函数应该能够确定为每个问题检查的复选框的数量,并在选择了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'返回到main函数,main函数以这种方式处理:
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;
//这会捕获正确问题的ID
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;
//遍历所有问题 for(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()函数中缺少一些非常简单的东西 有什么想法吗?
答案 0 :(得分:2)
使用jquery会使这非常简单
if ($('#yourform input[type=checkbox]:checked').length() > 3) {
alert('More than 3 checked');
}
答案 1 :(得分:0)
chk = document.getElementsByName("DSelectionID");
没有获取ID,它会抓取对DOM中元素的引用。
要获取您需要使用的ID:
chk = document.getElementsByName("DSelectionID").getAttribute("id")