我测试没有问题啊。
修改成这样呢?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script language="JavaScript" type="text/javascript">
window.onload = function () {
document.forms[0].elements["submit"].onclick = function () {
var checkedCount = 0;
var Item = this.form.elements;
for (var i = 0; i < Item.length; i ++) {
if (Item[i].checked)
checkedCount ++;
}
if (checkedCount > 5 || checkedCount < 3) {
alert("请选择3-5个选项!");
return false;
}
return true;
}
}
</script>
</head>
<body>
<form action="somepage.php" method="post" name="theForm">
<dl>
<dd><input type="checkbox" name="option1">1</dd>
<dd><input type="checkbox" name="option2">2</dd>
<dd><input type="checkbox" name="option3">3</dd>
<dd><input type="checkbox" name="option4">4</dd>
<dd><input type="checkbox" name="option5">5</dd>
<dd><input type="checkbox" name="option6">6</dd>
<dd><input type="checkbox" name="option7">7</dd>
</dl>
<input name="submit" type="submit" value="Submit !">
</form>
</body>
</html>

解决方案 »

  1.   

    建议:
    for (var i=0;i<document.forms[0].elements.length;i++){
    if(document.forms[0].elements[i].type == "checkbox")
    {
    if(document.forms[0].elements[i].checked) checkedCount++;
    }
    }
      

  2.   

    我神圣而又伟大的孟子大哥
    问个小小的问题呗。
    http://community.csdn.net/Expert/topic/5269/5269087.xml?temp=4.900759E-02
      

  3.   

    哈哈,我来发一个有用的先。
    首先要纠正lz的错误概念了id就跟身份证一样是不可以重复的,name和姓名一样是可以重复的了。
    把所有的checkbox 的name设置为optionCheck 然后用op获取checkbox的数组,循环一下
    var op = document.getElementById("theForm").optionCheck;
    for (var i=0;i<op.length;i++){
      ////..... some code here ........
    }
    就可以了。lz试试看了<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>这回可以了</title>
    </head>
    <body>
    <form action="somepage.php" method="post" name="theForm">
    <dl>
    <dd><input type="checkbox" name="optionCheck">1</dd>
    <dd><input type="checkbox" name="optionCheck">2</dd>
    <dd><input type="checkbox" name="optionCheck">3</dd>
    <dd><input type="checkbox" name="optionCheck">4</dd>
    <dd><input type="checkbox" name="optionCheck">5</dd>
    <dd><input type="checkbox" name="optionCheck">6</dd>
    <dd><input type="checkbox" name="optionCheck">7</dd>
    </dl>
    <input name="submit" type="submit" value="Submit !">
    </form>
    </body>
    </html>
    <script language="JavaScript" type="text/javascript">
    document.forms[0].elements["submit"].onclick=function(){
    var checkedCount=0;
    var op = document.getElementById("theForm").optionCheck;
    for (var i=0;i<op.length;i++){
    if(op[i].checked)
       checkedCount++;
    }
    if(checkedCount>5 || checkedCount<3){
    alert("请选择3-5个选项!");
    return false;
    }
    return true;
    }
    </script>
      

  4.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>

    </head>
    <body>
    <form action="somepage.php" method="post" name="theForm">
    <dl>
    <dd><input type="checkbox" name="option">1</dd>
    <dd><input type="checkbox" name="option">2</dd>
    <dd><input type="checkbox" name="option">3</dd>
    <dd><input type="checkbox" name="option">4</dd>
    <dd><input type="checkbox" name="option">5</dd>
    <dd><input type="checkbox" name="option">6</dd>
    <dd><input type="checkbox" name="option">7</dd>
    </dl>
    <input name="submit" type="submit" value="Submit !">
    </form>
    </body>
    </html>
    <script language="JavaScript" type="text/javascript">
    document.forms[0].elements["submit"].onclick=function(){
    var checkedCount=0;
    for (var i=0;i<document.forms[0].elements.length;i++){
    if(document.forms[0].elements[i].type == "checkbox")
    {
    if(document.forms[0].elements[i].checked) checkedCount++;
    }
    }
    if(checkedCount>5 || checkedCount<3){
    alert("请选择3-5个选项!");
    return false;
    }else{
    return true;
    }
    }
    </script>
    寫成這樣還是沒有用,在IE下面即使彈出了提示,仍然提交出去了
      

  5.   

    return false 以后还是继续往下执行