为什么这个用于检查复选框值的javascript循环不起作用?
Why is this javascript loop for checking checkbox values not working?
下面的JavaScript表单提交函数将获取第一个复选框值,但将无法获取其他复选框值。我已经测试了很多方法,似乎总是有一个问题,当得到"。第二次选中复选框的值
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>
每次收到新邮件时,emailnum从0开始
emailnum = 0
...
<input type='checkbox' id='<%=recid%>_to<%=emailnum%>' name='<%=recid%>_to<%=emailnum%>'> <%=email%> /<%=recid%>_to<%=emailnum%>
然而,你的javascript代码只是增加了后缀i
var checkbox = document.getElementById(recid+"_to"+i);
检查生成的HTML,看它是否符合你的Javascript假设。
相关文章:
- Javascript循环不会自我更新
- JavaScript循环无法正确计算/显示结果
- JavaScript循环并等待函数
- Javascript:循环属性内部的条件递增或递减
- Array方法中的Javascript循环
- 用于使用javascript循环选择选项
- 中断javascript循环
- 如何在javascript循环中打印代码
- jQuery.ajax()访问javascript循环中的beforeEnd局部变量
- 在qualtrics上使用javascript:循环块中的问题id
- GoogleMapsV3api只显示Javascript循环中的一些标记
- Javascript循环限制为仅1
- 如何将jQueryeach()转换为常规的javascript循环
- 有没有javascript循环的替代方案
- GraphQL代码中的Javascript循环依赖关系
- Javascript循环文本
- JavaScript循环中的HTML
- ..的Javascript..循环中的对象没有在最后一个属性上运行
- JavaScript循环迭代太多
- Javascript循环计算