Javascript中的复选框

时间:2011-11-04 15:21:54

标签: javascript function checkbox count

这是交易。任务是编写一个函数,该函数应该能够确定为每个问题检查的复选框的数量,并在选择了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()函数中缺少一些非常简单的东西 有什么想法吗?

2 个答案:

答案 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")