<form name="theform">
<input type='checkbox' name='Id' value="1">
<input type='checkbox' name='Id' value="2">
<input type='checkbox' name='Id' value="3">
<input type='checkbox' name='Id' value="4">
</form>
script language="javascript"
selNum=document.getElementById("theform").Id.length
/scriptIE 浏览器可以正确得到复选框的数量,但是Firefox浏览器却不行。

解决方案 »

  1.   

    <form name="theform"  id="theform">
    <input type='checkbox' name='Id' value="1">
    <input type='checkbox' name='Id' value="2">
    <input type='checkbox' name='Id' value="3">
    <input type='checkbox' name='Id' value="4">
    </form><script language="javascript">
    selNum=document.getElementById("theform").getElementsByTagName('input').Id.length
    </script>
      

  2.   


    document.write (selNum);
    试了一下,IE能出来,但是Firefox还是不行!
      

  3.   

    <form name="theform">
    <input type='checkbox' name='Id' value="1">
    <input type='checkbox' name='Id' value="2">
    <input type='checkbox' name='Id' value="3">
    <input type='checkbox' name='Id' value="4">
    <input type="button" name="bu" value="tijiao" onclick="getChks();"/>
    </form>
    <script>
    function getChks(){
    var chkNum = 0;
    var chkEl = document.getElementsByName("Id");
    for(i =0;i<chkEl.length;i++){
     if(chkEl[i].checked){
        chkNum ++;
     }
    }
    document.write(chkNum);
    }
    </script>
      

  4.   

      听说 fireFox 不支持。
      
      

  5.   

    document.getElementsByName("Id").length用getElementsByName的时候,如果有节点的id也是"Id"的话,IE也会获取,FF则会按照name来取
      

  6.   

    正统做法,
    1.id , name都要 加上,因为ie认id,ff认name,之所以你现在没有加还是能认是因为ie默认id=name
    2.checkbox的name和id不能一样。name一样的那是radio.我知道你可能是想名字一样,认识成数组方便。
    那为什么不
    var checkboxs = document.getElementsByTagName();for (var index = 0; index < checkboxs.length; index++) {
        if (checkboxs[index].type == 'checkbox') {
            checkboxs[index].checked = true;
        }
    }
      

  7.   

    selNum=document.getElementById("theform").Id.length这个就是也该错误的
    selNum=document.theform.Id.length
      

  8.   

    既然是form的,你为什么要用document.getElementById("theform")。而不用,document.theform
      

  9.   

    楼主的写法本来就有问题,用最简单的写法,干嘛整的那么复杂?
    num = document.form1.name1.length;
    IE和firefox通用
      

  10.   

    document.form1.name1.length;
    这个写法,IE下其实也很容易出问题!
      

  11.   

    试了一些,确实是通用。
    <form name="theform" method="post" action="1.asp">
    <input type='checkbox' name='Id' value="1">1<br />
    <input type='checkbox' name='Id' value="2">2<br />
    <input type='checkbox' name='Id' value="3">3<br />
    <input type='checkbox' name='Id' value="4">4<br />
    </form>num = document.theform.Id.length
    num = document.getElementsByName("name1").length请问一下,哪种写法来得“标准”呢?
      

  12.   

    num = document.form1.name1.length;
    当只有一个checkbox的时候,浏览器不认为是数组。.length报错lz的代码也有相同问题。
      

  13.   

    当只有一个的时候。
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript">
    function load() {
    alert(document.form1.check.length);
    }
    </script>
    </head>
    <body onload="load();">
    <form name="form1">
    <input type="checkbox" name="check" ></input>
    </form>
    </body>
    </html>两个以上的时候
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript">
    function load() {
    alert(document.form1.check.length);
    }
    </script>
    </head>
    <body onload="load();">
    <form name="form1">
    <input type="checkbox" name="check" ></input>
    <input type="checkbox" name="check" ></input>
    </form>
    </body>
    </html>
      

  14.   

    document.getElementsByName("name1").length
    w3c的写法最通用
    但是getElementsByName不能精确到tag,只能document.getElementsByTagName,可以精通到tag.var container = ....//document.getElementById('theform');等var checkboxs = container.getElementsByTagName('INPUT');for (var index = 0; index < checkboxs.length; index++) {
        if (checkboxs[index].type == 'checkbox') {
            checkboxs[index].checked = true;
        }
    }
      

  15.   


    试验了一下,果然报错:Undefined。谢谢提醒
    采用 document.getElementsByName("name1") ,则正确识别为 1