У меня есть список чекбоксов на ASP.NET веб-форме, который я заполняю динамически из массива. Через JavaScript мне нужно проходить по всем значениям и при выборе определенного пункта показывать другие элементы на странице.
Проблема в том, что все значения чекбоксов отображаются как ‘on’ вместо реальных значений, которые я установил. Как мне получить настоящие значения для каждого чекбокса?
Мой JavaScript код:
var checkboxElements = document.getElementById(CheckboxContainer);
var inputs = checkboxElements.getElementsByTagName('input');
for(var j = 0; j < inputs.length; j++) {
if(inputs[j].value == "Другое") {
if(inputs[j].checked) {
var additionalBlock = document.getElementById('<%=additionalControls.ClientID%>');
additionalBlock.style.display = 'block';
}
}
}
Проблемная строка: if(inputs[j].value==“Другое”) - в отладчике значения показываются как ‘on’, а не те, что я задал.
Сгенерированный HTML выглядит так:
<span id="ctl00_MainContent_Form1_categoryList" class="checkboxList" onChange="validateForm();" onClick="handleSelection('ctl00_MainContent_Form1_categoryList');">
<input id="ctl00_MainContent_Form1_categoryList_0" type="checkbox" name="ctl00$MainContent$Form1$categoryList$0"/>
<label for="ctl00_MainContent_Form1_categoryList_0">Вариант1</label>
<input id="ctl00_MainContent_Form1_categoryList_1" type="checkbox" name="ctl00$MainContent$Form1$categoryList$1"/>
<label for="ctl00_MainContent_Form1_categoryList_1">Вариант2</label>
<input id="ctl00_MainContent_Form1_categoryList_2" type="checkbox" name="ctl00$MainContent$Form1$categoryList$2"/>
<label for="ctl00_MainContent_Form1_categoryList_2">Вариант3</label>
</span>
Похоже, проблема в том, что у ASP.NET чекбокса нет атрибута value по умолчанию. Пробую обходной путь через получение текста чекбокса на сервере.