Значение флажка веб-формы в javascript

У меня есть элемент управления списком флажков в моей веб-форме asp.net, который я динамически заполняю из arrayylist. В javascript я хочу иметь возможность перебирать значения в списке и выбирать, выбрано ли конкретное значение для отображения других элементов управления на странице.

Моя проблема в том, что все значения в списке флажков отображаются как «включено» вместо фактического установленного значения. Как мне получить фактические значения для каждого флажка?

Спасибо.

Javascript:

checkBoxs=document.getElementById(CheckboxList);
    var options=checkBoxs.getElementsByTagName('input');       

    for(var i=0;i<options.length;i++)
    {            
        if (options[i].value= = "Other")
        {
            if (options[i].checked)
            {
                var  otherPub=document.getElementById('<%=alsOtherPublicity.ClientID%>');
                otherPub.style.display='block';

            }                
        } 

    }

Редактировать: Строка, с которой у меня проблемы, это if (options [i] .value == "Other"), поскольку значения, отображаемые в firebug, даны как 'on', а не значения, которые я установил.

Изменить 2: Создаваемый HTML-код выглядит так:

<span id = "ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity" class = "ucFieldCBL" onChange = "alValidate();" onClick = "alPublicity('ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity');">
  <input id = "ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_0" type = "checkbox" name = "ctl00$ContentPlaceHolderMetadata$Allocation1$alfPublicity$0"/>
  <label for = "ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_0">Text1</label>
  <input id = "ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_1" type = "checkbox" name = "ctl00$ContentPlaceHolderMetadata$Allocation1$alfPublicity$1"/>
  <label for = "ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_1">Text2</label>
  <input id = "ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_2" type = "checkbox" name = "ctl00$ContentPlaceHolderMetadata$Allocation1$alfPublicity$2"/>
  <label for = "ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_2">Text3</label>
  <input id = "ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_3" type = "checkbox" name = "ctl00$ContentPlaceHolderMetadata$Allocation1$alfPublicity$3"/>
  <label for = "ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_3">Text4</label>
  <input id = "ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_4" type = "checkbox" name = "ctl00$ContentPlaceHolderMetadata$Allocation1$alfPublicity$4"/>
  <label for = "ctl00_ContentPlaceHolderMetadata_Allocation1_alfPublicity_4">Text5</label>
</span>

Похоже, проблема связана с отсутствием атрибута значения, доступного в элементе управления флажком asp.net, как описано в Дэйв Парслоу. В настоящее время я пробую обходной путь, вызывая сторону сервера функций, чтобы вернуть текст флажка и используя его вместо этого.

Вы можете предоставить нам HTML-код?

Chris MacDonald 16.10.2008 17:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
3 779
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

options[i].checked вернет истину или ложь. options[i].value предоставит вам атрибут значения тега флажка.

Я думаю, ваша проблема не в javascript, а в коде, который заполняет флажки. Вы привязываете ArrayList как источник данных CheckBoxList или выполняете итерацию по ArrayList и добавляете новые ListItems в CheckBoxList. Если первое, рассмотрите возможность перехода на второе и убедитесь, что вы используете конструктор ListItem, который принимает как текстовые, так и значения параметров. Если вы посмотрите на исходный HTML-код, я подозреваю, что вы увидите, что в сгенерированном коде параметр значения включен для всех ваших флажков, что означает, что значения фактически не были привязаны в коде позади.

Не на 100% применимо здесь, но имейте в виду, что если вы установите флажок cssclass, он получит охват, обернутый вокруг него, и класс будет помещен на него. Это вызывает всевозможные кроссбраузерные проблемы при навигации по dom или отключении флажков.

Ответ принят как подходящий

После долгих экспериментов с событиями предварительной визуализации я понял, что мне на самом деле не нужно знать точное значение флажка, поскольку значения arrayylist будут в том же порядке, что и флажки. Я поискал в arrayylist позицию нужного мне значения, а затем использовал эту позицию в списке флажков.

Это звучит немного странно, и я не знаю, сработает ли это для всех, но я подумал, что все равно выложу его здесь, если он когда-нибудь поможет кому-то другому.

Спасибо за вашу помощь.

Другие вопросы по теме