小弟在写一个套打的功能,当jsp获得2条记录的时候,是能够正常的实现我需要的功能,但是如果后台只返回一条记录的话,我在页面上选中了checkbox是无效的。具体代码如下:
<%
Ks_cx_jlyDetails jlyda = new Ks_cx_jlyDetails(); 
for(int i = 0; i<listf.size();i++) {
jlyda = (Ks_cx_jlyDetails)listf.get(i);

%>
<tr valign="top" style="cursor:hand" >
<td height="45" align="center"  valign="top">
<div id="divXh<%=i+1%>"  >
<input  id="checkedID" type="checkbox" name="checkedID" value="" class="noPrint"><%=i+1%>&nbsp;
</div></td>
<td align="center" valign="center" ><div id="divYear<%=i+1%>" ><%=jlyda.getKhzqq().substring(0,4) %></div>&nbsp;</td>
<td align="center" valign="center"><div id="divBz<%=i+1%>" ><u>&nbsp;<%=jlyda.getKhzqq().substring(0,4) %>&nbsp;</u>   年诚信考核评定为:&nbsp;&nbsp;&nbsp; <%=jlyda.getPddj() %>&nbsp;级&nbsp; </div></td>
</tr>
<%
}
%>
 function onPrint(index){
 
     if(index=='2'){
//套打打印
var sqzlCount=0;
         if (typeof(document.forms[0].checkedID)!="undefined"){
         if (typeof(document.forms[0].checkedID.length)=="number"){
         alert("length--"+ document.forms[0].checkedID.length);
     for (var i=0;i<document.forms[0].checkedID.length;i++){
        if (document.forms[0].checkedID[i].checked){
            sqzlCount++;
         }
    }
}
   }
   alert("sqzlCount--"+ sqzlCount);
   if(sqzlCount==0){
    alert("请选择要打印的记录!");
    return false;
   }
如果只有一条记录,即时我选中了checkbox,依然会提示“请选择要打印的记录!”,但是如果有两条记录就正常。
麻烦各位大大帮忙看看

解决方案 »

  1.   

    你用javascript选中该复选框的,注意 只有1条数据时不是数组, 多条时是数组, 区别处理就行了。
      

  2.   

    应该是你的这个判断问题!“if(index=='2')"
      

  3.   

    您好,如果是一条数据的时候,document.forms[0].checkedID.length;这个值就是无效的吗?
      

  4.   

      if(index=='2'){
    为何要这样判断啊?