Jordan Johnson
asked on
Why is this javascript loop for checking checkbox values not working?
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:
HTML/ASP:
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();
}
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;"> <%=customer%></td>
<td valign='top' style="border-bottom:1px solid black;"> <%=receivedvia%></td>
-->
<td valign='top' style="border-bottom:1px solid black;"> <%=documenttpid%></td>
<td valign='top' style="border-bottom:1px solid black;">
<input type="hidden" name="recid<%=i%>" value="<%=recid%>"> <%=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%>'> <%=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%>'> <%=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>
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
@julian - You quoted me but misread. "Post data will include each checked checkbox", meaning "not all the checkboxes", just the checked ones.
@Tommy (blush) apologies - you are 100% correct missed the 'checked'
@Jordon - you have given a B grade on this question without supplying a reason for doing so. Please refer to the EE guidelines on grading.
http://support.experts-exchange.com/customer/portal/articles/481419
By default an A grade is given. Refer to the guidelines for more info
http://support.experts-exchange.com/customer/portal/articles/481419
By default an A grade is given. Refer to the guidelines for more info