当多行数据时,document.form1.danxuan引用对象数组
当只有一行数据时,document.form1.danxuan引用单个对象,len=document.form1.danxuan.length无效,所以执行不到循环部分。改写如下:
// 以数组形式返回名称为danxuan的对象
var num = 0 ;
var elements = document.getElementsByName("danxuan");
for(var i = 0 ; i < elements.length ; i++){
   if(elements[i].checked) num++;
}IE6执行正常

解决方案 »

  1.   

    如果只有一个checkbox,那么document.form1.danxuan取到的就不是一个数组了,所以length值是未定义的
      

  2.   

    这样就行了.<script language="JavaScript">
    function abc()
    {
      num=0
      len=document.form1.danxuan;
      if(len.length){
      for(i=0;i<len.length;i++){
         if(len[i].checked)num++;
         }
      }else {
      if(len.checked)num++;
      }
      if(num==0){
        alert("请您选择要删除的数据!")
        return false
      }
      return true
    }
    </script>
    <form name="form1">
    <input type=checkbox name="danxuan">
    <input type=checkbox name="danxuan">
    <input type=button onclick="abc()">
    </form>