如何自动检查所有具有相同名称的复选框?

时间:2011-05-15 10:36:45

标签: javascript jsp

我使用复选框检查邮件系统中用Java开发的邮件。

我想检查点击上方复选框上的所有复选框,但问题是根据检索到的邮件数量在循环中显示复选框。

请帮助我在哪里放置javascript代码来解决这个问题。

收件箱的循环代码如下:

<tr >
        <% for(int i=0;i<messageList.size();i++) { message = (Message)messageList.get(i);%>
        <td width="10%" height="33" align="left"   valign="top" bgcolor="#EEE" >
        <!--This link display the full message-->


        <input name="Mark_Mail" id="mark_mail" onclick="myfunction(this);" type="checkbox" value="<%=message.getMailId()%>" width="50" height="30" align="top" >
        <span id="space1" style="padding:2px"></span>

        <!--Check all the Checkboxes-->
        <script type="text/javascript">
        function checkAll()
        {
            document.getElementById('mark_mail').checked = "true";
        }

        </script>

        <img  src="Images/UnStarred.jpg" height="15" border="0"  id="image1" onclick="swapImage()" />
        <span id="space1" style="padding:2px"></span>
        </td>
        <td width="90%" height="33" align="left" colspan="7"  valign="bottom" bgcolor="#EEE" >
        <!--This link display the full message-->
        <a  id="link" href="viewMail.jsp?mailId=<%=message.getMailId()%>&isAttach=<%=message.getAttachmentFlag()%>">
        <!--Display Sender Address-->
        <font color="#000000" size="1"><strong><%=message.getSenderAddress()%></strong></font>
        <span id="space1" style="padding:6px"></span>

        <!--For Display Message Subject-->
        <font color="#000000" size="1"><strong><%=message.getSubject()%></strong></font>
        <span id="space1" style="padding:6px"></span>

        <!--For Display Attachment Image-->
        <%if(message.getAttachmentFlag().equals("1")){%><input type="hidden" name="filename" id="filename" value="<%=message.getFileName()%>" /><input type="hidden" name="filesize" id="filesize" value="<%=message.getFileSize()%> /><img src ="Images/attachment.jpg" style="bgcolor: #EEE" /><%}else{%><span style="padding-left:12px" ></span><%}%>
        <span id="space1" style="padding:6px"></span>

        <!--For Display Time and Date of messaging-->
        <font color="#000000" size="1"><strong><%=message.getTimestamp()%><span style="padding-left:5px"></span><%=message.getDate()%><input type="hidden" name="label" value="<%=message.getLabel()%>"></strong></font>
        </a></td>
        </tr><% } %>

1 个答案:

答案 0 :(得分:10)

您需要按名称获取元素,因为ID必须是唯一的:

function checkAll() {
   var arrMarkMail = document.getElementsByName("mark_mail");
   for (var i = 0; i < arrMarkMail.length; i++) {
      arrMarkMail[i].checked = true;
   }
}

只需将此代码放在页面的<head>部分即可。

要调用它,请在任意位置使用此复选框: 师父:<input type="checkbox" onclick="checkAll();" />
然而,最好通过一个按钮来完成:

<button type="button" onclick="checkAll();">Check All</button>