这是交易。任务是编写一个函数,该函数应该能够确定为每个问题选中的复选框的数量,并在选择了 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;
//这会捕获正确问题的 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;
//遍历所有问题 对于(var i=0;我 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() 函数中遗漏了一些非常简单的东西 有什么想法吗?
最佳答案
使用 jquery会让这变得非常微不足道
if ($('#yourform input[type=checkbox]:checked').length() > 3) {
alert('More than 3 checked');
}
关于javascript - Javascript 中的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8011617/