本帖最后由 peace12211214 于 2012-08-28 16:39:26 编辑

解决方案 »

  1.   

    将你的checkbox  分组  每一题的答案分为一组
     js 
    document.getElementsByTagName("当前组name值");
      

  2.   

    以下代码仅供参考<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>protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    DataTable dt = new DataTable();
                    dt.Columns.Add("question", typeof(string));                for (int i = 0; i < 10; i++)
                    {
                        DataRow dr = dt.NewRow();
                        dr["question"] = i.ToString();
                        dt.Rows.Add(dr);
                    }                this.Repeater1.DataSource = dt;
                    this.Repeater1.DataBind();
                }
            }        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
                {
                    string qid = DataBinder.Eval(e.Item.DataItem, "question") as string;
                    Repeater rptAnswer = e.Item.FindControl("rptAnswer") as Repeater;
                    DataTable dtAnswer = new DataTable();
                    dtAnswer.Columns.Add("answergroup", typeof(string));
                    dtAnswer.Columns.Add("answer", typeof(string));                for (int i = 0; i < 4; i++)
                    {
                        DataRow dr = dtAnswer.NewRow();
                        dr["answergroup"] = string.Format("q{0}", qid); 
                        dr["answer"] = string.Format("{0}",i);
                        dtAnswer.Rows.Add(dr);
                    }                rptAnswer.DataSource = dtAnswer;
                    rptAnswer.DataBind();
                }
            }
      

  3.   

    用你的方法可以了,但是但用户少选了,就没法判断了。为了确认用户没有少选,我在表单提交的时候,添加一个js函数,判断选中的总个数是否满足要求。由于我的form表单中有asp服务器控件,所以表单也必须是服务器控件,但是表单改为服务器控件之后,onsubmit中的函数就失效了,无法触发。这是什么原因呢?是因为由于服务器表单本身就在服务器上操作,就不存在submit的问题吗?有什么解决办法不?难道我只能在点击button提交时,在后台进行相应的判断吗?求解!!!
      

  4.   

    在点击提交按钮时调用OnClientClick  调用js方法检测有没有少选