Оценка элемента управления RadioButtonList с использованием JavaScript - ASP.Net - PullRequest
0 голосов
/ 08 ноября 2010

Я занимаюсь разработкой сайта с использованием 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 Ответ

2 голосов
/ 08 ноября 2010

В 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;

     } 
 }
...