У меня есть повторитель, где каждый элемент содержит флажок и дату;это позволяет пользователю выбирать набор дат.При подаче я хочу проверить, являются ли выбранные даты смежными, на стороне клиента.Я могу получить доступ к каждому элементу повторителя, используя назначенные классы для флажков и дат (как метки), но не знаю, как проверить, установлен флажок или нет.
Это то, что у меня есть (я удалил ненужные вещи):
<ItemTemplate>
<tr>
<td >
<asp:Checkbox runat="server" ID="cbSelectedDate" CssClass="partialCB" />
</td>
<td>
<asp:Label runat="server" ID="lblDate" CssClass="partialDate" Text='<%# Eval("DATE_STR")%>' ></asp:Label>
</td>
<td>
<asp:CheckBox runat="server" ID="cbHoliday" Checked='<%# Eval("ISHOLIDAY")%>' Enabled="false" ></asp:CheckBox>
</td>
</tr>
</ItemTemplate>
Выше приведено на странице, например:
<td>
<span class="partialCB"><input id="ctl00_MainContent_rptSchedule_ctl01_cbSelectedDate" type="checkbox" name="ctl00$MainContent$rptSchedule$ctl01$cbSelectedDate" /></span>
</td>
<td>
<span id="ctl00_MainContent_rptSchedule_ctl01_lblDate" class="NormalSmall partialDate">3/15/2019</span>
</td>
При нажатии кнопки «Отправить» вызывается следующая функция проверки:
function validSubmission() {debugger
var isValid = true;
// a bunch of vars and other stuff
isValid = getPartialDates();
return isValid;
}
function getPartialDates() {
var spans = document.getElementsByTagName('span');
var l = spans.length;
// Iterate through spans
for (var i = 0; i < l; i++) {
var spanClass = spans[i].getAttribute("class");
// checkboxes in repeater have class "partialCB"
if (spanClass === "partialCB") {
var v = spans[i].innerHTML;
// How do I do this? innerHTML has checkbox tag
if (checkbox is checked) {
var selDate = spans[i + 1].innerText;
}
}
}