使用jQuery

时间:2018-10-07 19:08:47

标签: jquery asp.net .net-4.5 repeater

我正在使用中继器显示一组调查/测试问题,其中每个问题后都有一个单选按钮列表控件,供用户选择选项。

并非所有问题都在一个页面中列出,它是用户一次选择并单击“提交”转到下一个问题的一次问题。为此,我将当前项目索引保留在隐藏字段中,并在项目索引与此索引匹配的问题列表中显示该问题,然后隐藏其他项目。当用户遇到最后一个问题时,将提交整个测试/调查。

我的问题是,在进入下一个问题之前,我需要确保用户在每个问题上单击“提交”按钮时都选择了一个选项,而且我不确定如何访问此特定的单选按钮列表以进行验证。 / p>

我可以使用以下中继器定义和jQuery验证整个中继器(即确保所有单选按钮列表均有效)

<asp:HiddenField runat="server" ID="hfItemIndex" ClientIDMode="Static" />

<div id="surveyContainer">
    <asp:Repeater runat="server" ID="rptQuestions" OnItemDataBound="rptQuestions_ItemDataBound">
        <HeaderTemplate>

        </HeaderTemplate>
        <ItemTemplate>
            <div runat="server" id="divCurrQuestion">
                <asp:HiddenField runat="server" ID="hfQuestionID" Value='<%# Eval("QuestionID")%>' />
                <div class="row">
                    <div class="col-centered col-sm-12">
                        <label><%# Eval("QuestionOrder")%>.&nbsp;<%# Eval("QuestionText")%></label>
                    </div>
                </div>
                <div class="survey-question">
                    <div class="row" style="padding-left:20px;">
                        <asp:RadioButtonList runat="server" ID="rblAnswers" RepeatDirection="Vertical" DataTextField="Answer" DataValueField="AnswerID"></asp:RadioButtonList>
                    </div>
                </div>
                <div id="divSubmitErr" runat="server" clientidmode="static" class="alert-danger" style="margin:10px 0 10px 0;display:none">Plese make a selection</div>
                <div id="divButtons" style="text-align: center;">
                    <button id="btnNext" runat="server" clientidmode="static" class="btn btn-primary" aria-hidden="true" aria-label="Submit" causesvalidation="true" validationgroup="vgAnswer" >Submit</button>
                    <button id="btnSubmitTest" runat="server" clientidmode="static" class="btn btn-primary" aria-hidden="true" aria-label="Submit" style="display:none">Submit</button>
                    <button id="btnCancelTest" class="btn btn-info2" data-dismiss="modal" aria-hidden="true" aria-label="Cancel">Cancel</button>&nbsp;&nbsp;&nbsp;&nbsp;
                </div>
            </div>
        </ItemTemplate>
    </asp:Repeater>
</div>

function validateSubmit() {
    var countQuestions = $(".survey-question").length;
    var countChecked = $(":checked", $("#surveyContainer")).length;
    return countQuestions == countChecked;
}

0 个答案:

没有答案