We help IT Professionals succeed at work.
Get Started

Why is this javascript loop for checking checkbox values not working?

Jordan Johnson
on
141 Views
Last Modified: 2015-11-25
The following form submission function in JavaScript will get the first check box value, but will fail to get others. I have tested this numerous ways, and it seems to always have an issue when getting the ".checked" value for the check box the second time.

Javascript:
function checkForm()
{
  numrows = document.theform.numrows.value;
  if(numrows == -1)
  {
    alert("You do not have any transactions setup yet");
    return false;
  }

  emailcheckcount = 0;
  for(i=0; i<=numrows; i++)
  {
      var recid = document.forms["theform"]["recid"+i].value;
      var checkbox = document.getElementById(recid+"_to"+i);

      if (checkbox.checked)
      {
      emailcheckcount++;

      }
  }

    if(emailcheckcount == 0) {
    alert("Please Select At Least One Email for Alerts");
    return false;
    }

  document.theform.submit();
}

Open in new window


HTML/ASP:

<%
    numrows = -1
    strSQL = "select recid, customer, documenttpid, tolist, cclist, bcclist, receivedvia, addmailout, emailsubject from MailOut where customer like '%"&cname&"%' and (receivedvia = 'email' or addmailout = 'email') and emailsubject <> 'ignore' order by customer, documenttpid;"
    Set rs = objConnection2.Execute(strSQL, ,adCmdText)
    if not (rs.eof and rs.bof) Then

      arr = rs.getrows()
      numrows = ubound(arr,2)
      for i=0 to numrows
        dim tolist
        dim cclist

        recid = arr(0,i)
        customer = arr(1,i)
        documenttpid = arr(2,i)
        if not IsNull(arr(3,i)) Then
          tolist = split(arr(3,i),"|")
        else
          tolist = null
        end if


        if not IsNull(arr(4,i)) and Len(arr(4,i)) > 0 Then
          cclist = split(arr(4,i),"|")
        else
          cclist = null
        end if

        bcclist = arr(5,i)
        receivedvia = arr(6,i)
        addmailout = arr(7,i)
        emailsubject = arr(8,i)


    %>
    <tr>
    <!--
    <td valign='top' style="border-bottom:1px solid black;">&nbsp;<%=customer%></td>
    <td valign='top' style="border-bottom:1px solid black;">&nbsp;<%=receivedvia%></td>
    -->
    <td valign='top' style="border-bottom:1px solid black;">&nbsp;<%=documenttpid%></td>
    <td valign='top' style="border-bottom:1px solid black;">
    <input type="hidden" name="recid<%=i%>" value="<%=recid%>">&nbsp;<%=emailsubject%></td>
    <td valign='top' style="border-bottom:1px solid black;">
    <%
    emailnum = 0
    if not isNULL(tolist) then
        for each email in tolist
          if  not(isNULL(email) or trim(email)="") Then
    %>
      <input type='checkbox' id='<%=recid%>_to<%=emailnum%>' name='<%=recid%>_to<%=emailnum%>'>&nbsp;<%=email%> /<%=recid%>_to<%=emailnum%>
      <input type='hidden' name='<%=recid%>_to<%=emailnum%>email' value='<%=email%>'><BR>
    <%
          end if

          emailnum = emailnum + 1
        next
    end if
    %>
    <input type='hidden' name='numtoemails<%=i%>' value='<%=emailnum%>'>

    <BR>Add Email:<input type='text' name='addtoemail<%=i%>'></td>
    <td valign='top' style="border-bottom:1px solid black;">
    <%
    ccnum = 0
    if(not isNULL(cclist))then
        for each email in cclist
          if trim(email) <> "") = 0 Then
    %>
      <input type='checkbox' name='<%=recid%>_cc<%=ccnum%>'>&nbsp;<%=email%>
      <input type='hidden' name='<%=recid%>_cc<%=ccnum%>email' value='<%=email%>'><BR>
    <%
          end if

          ccnum = ccnum + 1
        next
    end if
    %>
    <input type='hidden' name='numccemails<%=i%>' value='<%=ccnum%>'>

    <BR>Add Email:<input type='text' name='addccemail<%=i%>'></td>
    </tr>
    <%
      next
    end if
    %>

    <input type="hidden" name="numrows" value="<%=numrows%>">

    <tr><td align="Right" colspan="4"><input type="button" value="Submit" style="width:70px;" class="btn-primary" onclick="checkForm();"></td></tr>

Open in new window

Comment
Watch Question
CERTIFIED EXPERT
Fellow
Most Valuable Expert 2017
Commented:
This problem has been solved!
Unlock 2 Answers and 5 Comments.
See Answers
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE