关于统制嵌套repeater控件中checkbox的选中的个数
关于控制嵌套repeater控件中checkbox的选中的个数
我有一套试卷,试卷中的每道题都有4个选项,通过嵌套repeater控件的方法来显示这份试卷。每道题是个2选题,我希望通过javascript来控制用户每道题下的选项对应的复选框只能选择两个,多了就提示警告。
我想问两个问题:
1、我原先希望可以在用户答每道题的时候如果多选了,就提示出错,但是想不到应该怎么做?不知哪位有什么好的方法可以介绍一下,万分感谢。
2.后来我在表单中,添加onsubmit属性,调用js函数,但是不论我多答还是少答,总是提示我少选了,请各位帮忙看看,到底哪里有问题?对应js代码如下:
本人菜鸟一个,请各位多多指教!!!
------解决方案--------------------
将你的checkbox 分组 每一题的答案分为一组
js
document.getElementsByTagName("当前组name值");
------解决方案--------------------
以下代码仅供参考
我有一套试卷,试卷中的每道题都有4个选项,通过嵌套repeater控件的方法来显示这份试卷。每道题是个2选题,我希望通过javascript来控制用户每道题下的选项对应的复选框只能选择两个,多了就提示警告。
我想问两个问题:
1、我原先希望可以在用户答每道题的时候如果多选了,就提示出错,但是想不到应该怎么做?不知哪位有什么好的方法可以介绍一下,万分感谢。
2.后来我在表单中,添加onsubmit属性,调用js函数,但是不论我多答还是少答,总是提示我少选了,请各位帮忙看看,到底哪里有问题?对应js代码如下:
本人菜鸟一个,请各位多多指教!!!
- JScript code
function ControlNum() { var count = 0; var cArray = document.getElementsByTagName("input"); var i=0; var option_number = <%=option_num %>; var result_number =<%=result_num %>; var item_number = <%=item_num %>; var total = result_number*option_number; while(i<cArray.length){ count = 0 for(var j = 0;j<result_number;j++) { if (cArray[i].type == 'checkbox' && cArray[i].checked) { count++; } i++; } if(count == option_number) { continue; } else{ if(count > option_number) { alert("注意题目类型,请勿多选!"); return false; break; } else { alert("注意题目类型,请勿少选!"); return false; break; } } } }
------解决方案--------------------
将你的checkbox 分组 每一题的答案分为一组
js
document.getElementsByTagName("当前组name值");
------解决方案--------------------
以下代码仅供参考
- HTML code
<asp:Repeater ID="Repeater1" runat="server" onitemdatabound="Repeater1_ItemDataBound"> <ItemTemplate> 题目: 第<%# Eval("question") %>题 <ul> <asp:Repeater ID="rptAnswer" runat="server"> <ItemTemplate> <li> <input id="<%# Eval("answergroup") %>" name="<%# Eval("answergroup") %>" type="checkbox" onclick="checkNum('<%# Eval("answergroup") %>')" /> <%# Eval("answer") %></li> </ItemTemplate> </asp:Repeater> </ul> </ItemTemplate> </asp:Repeater> <script language="javascript" type="text/javascript"> function checkNum(chkname) { var chkanswer = document.getElementsByName(chkname); var answernum = chkanswer.length; var falg = 0; for (var i = 0; i < answernum; i++) { if (chkanswer[i].checked) { falg++; if (falg > 2) { chkanswer[i].checked = false; } } } } </script>