我的页面里是这么写的.
<%for (int i=0;i<l.size();i++){%>
<input type=“checkbox“ name=“msgid“ value=“<%=i%>“>
<%}%>
<input type=“hidden“ name=“msgids“ value=““>
<script language="JavaScript">
<!--
function test(){
var ids="";
for(i=0;i<form1.msgid.length;i++)
 {
     if(form1.msgid[i].checked==true) ids=ids+form1.msgid[i].value+",";
 }
   document.all.form1.msgids.value=ids;
   if(ids.indexOf(",")<0)
   {
    alert("请至少选择一条信息");
    return false;
   }
   form1.action="del_reced.jsp";
   document.form1.submit();
}
-->
</script>当l.size()>1的时候,
执行test()一切正常,可是当l.size()=1的时候
执行,居然说form1.msgid.length是没定义的,是什么回事,大家平时是怎么取checkbox的值的.(可多选)

解决方案 »

  1.   

    我一般是直接在java中
    String[] checkValue=request.getParameterValues("yourcheckbox");
    至于那段javascript只是作为页面验证使用。
      

  2.   

    另外:你的for(i=0;i<form1.msgid.length;i++) 这里 i前面少了个var。
      

  3.   

    l.size()=1的时候checkbox并不是一个数组,
    增加一个判断
    if(form1.msgid.length==undefined)
    {
    //form1.msgid.checked......
    }else{
    //form1.msgid[i].checked......
    }
      

  4.   

    用这种方法简单些
    String[] checkValue=request.getParameterValues("yourcheckbox");
      

  5.   

    谢谢各位.那么的方法都可以,用String[] checkValue=request.getParameterValues("yourcheckbox");更好用