我做了一个复选框是否被选中的javascript验证,但是有这样一个现象,如果当你只有一条数据的时候,他就验证不了你是否选中了没有, 即使选中了,也提示你“请选择要删除的草稿”
为什么会当只有一条数据的时候就不能成功验证呢?
var more = document.form1.more.length;
   var a =0;
   for(var i =0;i<more;i++){
    if(document.form1.more[i].checked){
     a=a+1;
    }
   }
   if(a==0){
    alert("请选择要删除的草稿");
   }else{
    var bln  = window.confirm("确定删除?",ChildMenu1);
    if(bln==true){
      obj.submit();
    }
    } 
 } 

解决方案 »

  1.   

    $("input[type='checkid']:checked").length获取所有已经选中的checkbox的值
      

  2.   

    if(document.form1.more[i].checked){
        a=a+1;
      }//a的值 总是为0的,,,我也找不出原因///不知道 为什么alert(a) 总是为0无论有没有选 中 alert(a) 总是为0期待答案.....
      

  3.   


    document.form1.onsubmit=function(){
      var more = document.form1.more.length;
      var a=0;
      for(var i =0;i<more;i++){
      if(document.form1.more[i].checked==true){
        a++;
      }
      }
      alert(a)
      if(a==0){
      alert("请选择要删除的草稿");
      }
      else{
      
      var bln = window.confirm("确定删除?");
       if(bin==true)
          document.form1.submit();
         
      }  
      
      }
     }      


      
        
          
    </script>
    </head><body>
    <form  name="form1" action="#" method="post">
       <input type="checkbox" name="more"/>yes
       <input type="checkbox" name="more" checked="checked" />no
       <input type="submit"  />
    </form> </body>
    </html>//这个是没有错的,,,你那个 应该 加个onclick事件,当单击按纽进时 进行判断,,
      你那个看起来也没错,,找不出原因
      

  4.   

    var more = document.form1.more.length;
    只有一个的时候,就不是数组,所以不能使用.length,使用了会返回undefined。导致下面的代码逻辑出错。<META NAME="Author" CONTENT="theforever(碧海情天),赵亮">
    <meta http-equiv="email" content="theforever·163。com">
    <meta http-equiv="blog" content="blog.csdn.net/theforever">
    <script type="text/javascript">
    function theforever() {
    var more = document.form1.more.length;
    var a = 0;
    if (more == undefined) a = 1;
    else {
    for (var i = 0; i < more; i++) {
    if (document.form1.more[i].checked) {
    a = a + 1;
    }
    }
    }
    if (a == 0) {
    alert("请选择要删除的草稿");
    } else {
    var bln = window.confirm("确定删除?", "aaa");
    if (bln == true) {
    obj.submit();
    }
    }
    }
    </script>
      

  5.   

    上面程序漏个地方,改正一下:
    <META NAME="Author" CONTENT="theforever(碧海情天),赵亮">
    <meta http-equiv="email" content="theforever·163。com">
    <meta http-equiv="blog" content="blog.csdn.net/theforever">
    <script type="text/javascript">
    function theforever() {
    var more = document.form1.more.length;
    var a = 0;
    if (more == undefined) {if(document.form1.more.checked) a = 1;}
    else {
    for (var i = 0; i < more; i++) {
    if (document.form1.more[i].checked) {
    a = a + 1;
    }
    }
    }
    if (a == 0) {
    alert("请选择要删除的草稿");
    } else {
    var bln = window.confirm("确定删除?", "aaa");
    if (bln == true) {
    obj.submit();
    }
    }
    }
    </script>
      

  6.   


    LZ的代码,测试了一下,,无论只有一个 还是多个,a不一样为0数组不能只有一个吗?返回只是一个集合,,也并非数组
      

  7.   

    能不能解释一下 document.form1.more 为什么不是一个数组呢??????数组不能只有一个吗??????????????