<script language="javascript">
function check(){
var checkbox = document.all.properties;
var flag=false;
for(var i=0;i<checkbox.length;i++){
       if(checkbox[i].checked){
           flag=true;
           break;
      }
      }
      if(flag==true){
       if(confirm("您确认要设置户型?")){
document.aform.submit();
}else{
return;
}
      }
      else{alert("没有房源被选中"); }
       
}
</script>因为我的checkbox中的选项个数是不定的,这样如果checkbox中有2个或2个以上选项(不是被选中的选项),完全可以判断有没有被选中的选项,但是如果只有一个选项,就无法判断了,怎么解决,等待高人啊!~

解决方案 »

  1.   

    先定义个一标志,如果选中有值,那么改变这个标志。
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="gb2312" />
    <title></title>
    <style>

    </style>
    </head>
    <body>
    1 <input type="checkbox" name="test" />

    <button id="test">测试</button>
    <script>
    var $ = function(id){
    return document.getElementById(id);
    };

    var objs = document.getElementsByName('test');
    var flag = false;
    $('test').onclick = function(){
    for( var i = 0, len = objs.length; i<len; i++ ){
    if( objs[i].checked ){
    flag = true;
    }
    }
    alert( flag )
    }

    </script>
    </body>
    </html>
      

  2.   

    你写的和我的一样,但是和我的一样,实现不了点按钮去检查是否被选中,如果是两个选项就不会有问题
    是否是checkbox必须要有两个以上的选项
      

  3.   

    不是啊,楼主把你有问题的demo整理下贴出来,看看具体是什么问题。
      

  4.   


    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ taglib prefix="s" uri="/struts-tags"%>
    <%@ page import="java.sql.*,com.soft.util.DB,org.hibernate.Query,org.hibernate.Session,com.zc.pojo.*,java.util.*"%>
    <html>
    <head>
    <title>户型查看</title>
    <%  String adminGrade=(String)session.getAttribute("adminGrade");
        if(adminGrade==null){
          request.setAttribute("msg", "对不起,只有管理员才\\n可以使用此项功能,请登陆!");
    %>
       <jsp:forward page="AdminLogin.jsp"></jsp:forward>
    <%}%>
    <script language="javascript" src="script/trim.js"></script>
    <script language="javascript">
    function check(){
    var checkbox = document.all.properties;
    var flag=false;
    for(var i=0;i<checkbox.length;i++){
           if(checkbox[i].checked){
               flag=true;
               break;
          }
          }
          if(flag==true){
           if(confirm("您确认要设置户型?")){
    document.aform.submit();
    }else{
    return;
    }
          }
          else{alert("没有房源被选中"); }
           
    }
    </script>
    </head>
    <body style="background: url('img/top/bg4.jpg')">
    <%
    Object rlt = ses.createQuery("select max(hr.building) from HouseResource hr").uniqueResult();
    int buildingSum=Integer.parseInt(rlt.toString());
    DB.closeAll(ses);
    %>

    <table width="60%" align="center" border="1px">
    <form action="houseResourceAlter" name="aform">
    <tr><td width="50%"><table border="1px" width="100%">
    <%for(int i=1;i<=buildingSum;i++){
    Session ses1=DB.getSession();
    Query q1=ses1.createQuery("select hr.unit from HouseResource hr where hr.building = ? and hr.houseCategory is null group by hr.unit");
    q1.setParameter(0,i);
    List<Integer> o = (List<Integer>)q1.list();
    DB.closeAll(ses1);
    for(int j=0;j<o.size();j++){
    %>
    <tr>
    <td align="center"><input id="properties" name="properties" type="checkbox" value=<%=i%>,<%=o.get(j)%> />    </td>
    <td><%=i%>号楼<%=o.get(j)%>单元</td>
    </tr>
    <%}
    }%>
    </table></td>

    <td align="center"><input type="button" value="设置" onclick="check()"/></td>
    </tr>
    </form>
    </table>

    </body>
    </html>现在为了测试我是把查询DB先写在jsp中 
      

  5.   


    其实现在主要问题是checkbox的选项个数不定,如果是一个,我和你那样的js是无法判断的,因为checkbox的length,我alert出来是undefined
      

  6.   

    楼主 页面里 id值是唯一的你看 你这里 循环生成了
    <input id="properties" name="properties换成
    var checkbox = document.getElementsByName('properties');试试