Я использую повторитель для отображения набора вопросов опроса / теста, где каждый вопрос сопровождается переключателем списка переключателей, чтобы пользователь мог выбрать опцию.
Вопросы не все перечислены на одной странице,это один вопрос за раз, когда пользователь делает выбор и нажимает «Отправить», чтобы перейти к следующему вопросу.Для этого я сохраняю текущий индекс элемента в скрытом поле и отображаю вопрос в списке вопросов, индекс элемента которого соответствует этому индексу, и скрываю другие.Когда пользователь достигает последнего вопроса, отправляется весь тест / опрос.
Моя проблема заключается в том, что мне нужно убедиться, что пользователь выбрал опцию, когда нажимает кнопку «Отправить» в каждом вопросе, прежде чем перейти к следующему вопросу, и яЯ не уверен, как получить доступ к этому конкретному списку переключателей, чтобы проверить его.
Я могу проверить весь ретранслятор (т.е. убедиться, что все списки переключателей действительны), используя следующее определение ретранслятора и 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")%>. <%# 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>
</div>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
function validateSubmit() {
var countQuestions = $(".survey-question").length;
var countChecked = $(":checked", $("#surveyContainer")).length;
return countQuestions == countChecked;
}