Оценка элемента управления RadioButtonList с использованием JavaScript - ASP.Net

Я занимаюсь разработкой сайта с использованием asp.net и C#.

Я использую элемент управления RadioButtonList. Фрагмент кода для RadioButtonList показан ниже

 <asp:RadioButtonList ID="RLCompareParameter" runat="server" 
            RepeatDirection="Horizontal" meta:resourcekey="rsKey_RLCompareParameter" 
            AutoPostBack="True" 
            onselectedindexchanged="RLCompareParameter_SelectedIndexChanged">
          <asp:ListItem Selected="True" Value="Forms" meta:resourcekey="rsKey_RLCompareParameterListItemForms" Text="Forms"></asp:ListItem>
          <asp:ListItem Value="Segments" meta:resourcekey="rsKey_RLCompareParameterListItemSegments" Text="Segments"></asp:ListItem>
          <asp:ListItem Value="Questions" meta:resourcekey="rsKey_RLCompareParameterListItemQuestions" Text="Questions"></asp:ListItem>
     </asp:RadioButtonList>

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

  var RLCompareParameter = this.document.getElementById("<%= RLCompareParameter.ClientID %>");
         if (RLCompareParameter.SelectedValue == "Forms") {
             if (document.getElementById("<%= lbAvailableForms.ClientID %>").value == "") {
                 alert("Please select a form from Available Evaluation Forms ");
                 return false;
             }


         } else if (RLCompareParameter.SelectedValue == "Segments") {
             if (document.getElementById("<%= lbAvailableSegments.ClientID %>").value == "") {
                 alert("Please select a segment from the available segments ");
                 return false;
             }
         } else if (RLCompareParameter.SelectedValue == "Questions") {
             if (document.getElementById("<%= lbAvailableQuestions.ClientID %>").value == "") {
                 alert("Please select a Question from the available questions");
                 return false;

             } 
         }

Но if(RLCompareParameter.SelectedValue == "некоторое значение") всегда ложно. Я думаю, что нет никакого атрибута, как выбранное значение для элемента управления RadioButtonList. Я надеюсь, что кто-то поможет мне

1 ответ

Решение

В HTML нет такого понятия, как RadioButtonList. Ваш RLCompareParameter Переменная будет ссылкой на таблицу или диапазон, содержащий три элемента ввода (это то, что элемент управления ASP.NET выводит на вашу страницу). SelectedValue только для кода ASP.NET, а не JavaScript.

Вам нужно будет получить ссылку на конкретный input сам элемент и посмотрите на его checked свойство в ваших операторах if, чтобы увидеть, выбран ли этот переключатель или нет. Есть несколько способов сделать это. Вот тот, который может работать:

 var RLCompareParameter = document.getElementById("<%= RLCompareParameter.ClientID %>");
 var radioButtons = RLCompareParameter.getElementsByTagName('input');

 if (radioButtons[0].checked) {
     if (document.getElementById("<%= lbAvailableForms.ClientID %>").value == "") {
         alert("Please select a form from Available Evaluation Forms ");
         return false;
     }
 } else if (radioButtons[1].checked) {
     if (document.getElementById("<%= lbAvailableSegments.ClientID %>").value == "") {
         alert("Please select a segment from the available segments ");
         return false;
     }
 } else if (radioButtons[2].checked) {
     if (document.getElementById("<%= lbAvailableQuestions.ClientID %>").value == "") {
         alert("Please select a Question from the available questions");
         return false;

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