| 循环里同名checkbox如何限定选取个数 |
| [ 来源:ITWENKU 时间:2007-4-16 15:26:14 | 浏览:315人次
] |
| |
|
<%
i=0 Do While Not Rs.Eof i=i+1 %> <TABLE> <TBODY> <tr> <td height="30"><input type="hidden" name="tid" value="<%=rs("id")%>" ><%=i%>、<B><FONT class=title1><%=rs("title")%> </FONT></B> </td> </tr> <TR> <TD><TABLE> <TBODY> <% sql2="select * from yh" Set Rs2=Server.CreateObject("ADODB.RecordSet") Rs2.Open sql2,Conn,1,1 %> <tr> <TD vAlign=bottom> <INPUT type="<%=lx%>" name=uid onClick="doCheck(this)" value=<%=rs2("uname")%>> <LABEL><%=rs2("uname")%></LABEL></TD> </tr> <% Rs2.MoveNext Loop%> </TBODY> <% rs2.close set rs2=nothing %> </TABLE></TD> </TR> </TBODY> </TABLE>
<% Rs.MoveNext Loop%>
你的这个 doCheck(this) 在哪里 你可以 把所选的id 都传递到第二页然后 放到数组里,判断数组的长度 即可
我想限定<TD vAlign=bottom><INPUT type="<%=lx%>" name=uid value=<%=rs2("uname")%>> <LABEL><%=rs2("uname")%></LABEL></TD> 选择的个数,该如何写
<script> function chk(obj1){ var obj = document.forms[0]; var max = 5; var j = 0; if (obj.s.length){ for (i = 0; i < obj.s.length; i++){ if (obj.s[i].checked) j++; if (j > max){ alert("对不起,最大选取" + max + "。"); obj1.checked = false; break; } } } } </script> <form> <input type="checkbox" name="s" value="1" onclick="chk(this);" /> <input type="checkbox" name="s" value="2" onclick="chk(this);" /> <input type="checkbox" name="s" value="3" onclick="chk(this);" /> <input type="checkbox" name="s" value="4" onclick="chk(this);" /> <input type="checkbox" name="s" value="5" onclick="chk(this);" /> <input type="checkbox" name="s" value="6" onclick="chk(this);" /> <input type="checkbox" name="s" value="7" onclick="chk(this);" /> </form>
楼上的正解
楼上的可能没弄明白,我的问题是,<TD vAlign=bottom><INPUT type="<%=lx%>" name=uid value=<%=rs2("uname")%>> <LABEL><%=rs2("uname")%></LABEL></TD>是嵌套在Do While Not Rs.Eof的循环里面,也就是有多个问题里面含有<TD vAlign=bottom><INPUT type="<%=lx%>" name=uid value=<%=rs2("uname")%>>一次性提交,要同时对每个问题的checkbox进行多选个数限制
还是不明白.^________^,再说详细一点.
所有的问题都是同一组checkbox?那判断个屁啊!每个题目各一组checkbox才有指望~
就是像这样的啦,我有一批问题,相同的问题答案选项,问题和答案都从数据库库读取,问题的循环里包含了答案的循环,现在要限定答案的多选个数,该如何写,4楼的只能对单个问题的答案数进行限定
哦,知道了.
把max和chekbox的name提出做为参数.
然后..循环出问题及答案时,chekbox的name变化即可.
<script> function chk(obj1, max){ var obj = eval(obj1.name); var j = 0; if (obj.length){ for (i = 0; i < obj.length; i++){ if (obj[i].checked) j++; if (j > max){ alert("对不起,最大选取" + max + "。"); obj1.checked = false; break; } } } } </script> <input type="checkbox" name="s1" value="1" onclick="chk(this, 3);" /> <input type="checkbox" name="s1" value="2" onclick="chk(this, 3);" /> <input type="checkbox" name="s1" value="3" onclick="chk(this, 3);" /> <input type="checkbox" name="s1" value="4" onclick="chk(this, 3);" /> <hr/> <input type="checkbox" name="s2" value="1" onclick="chk(this, 2);" /> <input type="checkbox" name="s2" value="2" onclick="chk(this, 2);" /> <input type="checkbox" name="s2" value="3" onclick="chk(this, 2);" /> <input type="checkbox" name="s2" value="4" onclick="chk(this, 2);" />
楼上的还是没明白,他的checkbox是一组的,name都一样的...
是的楼上的理解正确,name都是一样的,有什么办法解决呀
name都一样,你判断啥啊? 你不会加一个属性啊?然后去判断属性不结了.没有区别,你就别想了
<input type="checkbox" name="s1" m="1" value="1" onclick="chk(this, 3);" /> <input type="checkbox" name="s1" m="2" value="2" onclick="chk(this, 3);" /> <input type="checkbox" name="s1" m="2" value="3" onclick="chk(this, 3);" /> <input type="checkbox" name="s1" m="3" value="4" onclick="chk(this, 3);" /> ...
程序去判断m这个属性即可.
想能不能有这种形式的限制啦 问题 答案 答案循环 限定checkbox个数 问题循环
楼上的加m,程序该怎么写,不懂javascript
checks = document.getElementsByName("s1") for(i = 0;i<checks.length;i++) { alert(checks[i].value) alert(checks[i].getAttribute("m")) }
|
|
 |
推荐文章 |
|