Как получить значение флажка в JavaScript для веб-формы ASP.NET?

Привет всем! У меня возникла проблема с чекбоксами на веб-форме ASP.NET. Я динамически заполняю список флажков из ArrayList, но когда пытаюсь получить их значения через JavaScript, все они показываются как ‘on’ вместо заданных мной значений.

Вот пример моего кода:

let checkboxes = document.getElementById('списокФлажков');
let options = checkboxes.getElementsByTagName('input');

for (let i = 0; i < options.length; i++) {
  if (options[i].value === 'Другое') {
    if (options[i].checked) {
      let дополнительноеПоле = document.getElementById('полеДляДругого');
      дополнительноеПоле.style.display = 'block';
    }
  }
}

Проблема в том, что условие options[i].value === 'Другое' никогда не срабатывает, так как все значения почему-то ‘on’. Как мне получить реальные значения каждого флажка?

Заранее спасибо за помощь!

Попробуй использовать свойство dataset для хранения значений. В разметке добавь data-атрибут: . А в JS обращайся так: options[i].dataset.value === ‘Другое’. Это должно решить проблему с получением значений. Еще можно проверить, как генерируются чекбоксы на серверной стороне - возможно, там закралась ошибка при установке value.

Сталкивался с похожей проблемой. Попробуй использовать атрибут id вместо value. В разметке: . В JS проверяй так: options[i].id === ‘Другое’. Это работает надежнее, так как id уникален. Еще совет - используй addEventListener вместо inline-обработчиков. Типа:

document.getElementById(‘Другое’).addEventListener(‘change’, function() {
document.getElementById(‘полеДляДругого’).style.display = this.checked ? ‘block’ : ‘none’;
});

Так код будет чище и гибче.