首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于统制嵌套repeater控件中checkbox的选中的个数

2012-10-20 
关于控制嵌套repeater控件中checkbox的选中的个数我有一套试卷,试卷中的每道题都有4个选项,通过嵌套repeat

关于控制嵌套repeater控件中checkbox的选中的个数
我有一套试卷,试卷中的每道题都有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> 

热点排行
Bad Request.