Чтение выбранного значения из asp: RadioButtonList с использованием jQuery

У меня есть код, похожий на следующий …

Я хочу захватить событие, когда список радио blBuffetMealFacilities: chk изменяет клиентскую сторону и выполняет функцию слайд-вниз в div HasBuffet из jQuery. Каков наилучший способ создать это, имея в виду, что на странице есть несколько похожих разделов, где я хочу, чтобы вопросы отображались в зависимости от ответа «да нет» в списке радиостанций.

    это:

     $('#rblDiv input').click(function(){ alert($('#rblDiv input').index(this)); }); 

    вы получите индекс переключателя, который был нажат (я думаю, непроверенный) (обратите внимание, что вам пришлось обернуть ваш RBL в #rblDiv

    вы можете использовать его для отображения соответствующего div следующим образом:

     $('.divCollection div:eq(' + $('#rblDiv input').index(this) +')').show(); 

    Это ты имел в виду?

    Изменить: Другой подход – дать rbl имя classа, а затем перейти:

     $('.rblClass').val(); 

    Простым способом получения проверенного значения RadioButtonList1 является:

     $('#RadioButtonList1 input:checked').val() 

    Редактировать Тим:

    где RadioButtonList1 должен быть идентификатором ClientButtonList

     var rblSelectedValue = $("#<%= RadioButtonList1.ClientID %> input:checked"); 

    Это сработало для меня …

      Yes! Not now Never!  

    Обработчик:

     $(document).ready(function () { $("#<%=Intent.ClientID%>").change(function(){ var rbvalue = $("input[name='<%=Intent.UniqueID%>']:radio:checked").val(); if(rbvalue == "Confirm"){ alert("Woohoo, Thanks!"); } else if (rbvalue == "Postpone"){ alert("Well, I really hope it's soon"); } else if (rbvalue == "Decline"){ alert("Shucks!"); } else { alert("How'd you get here? Who sent you?"); } }); }); 

    Важная часть: $ (“input [name = ‘<% = Intent.UniqueID%>‘]: radio: checked”). Val ();

    Список радиокнопки вместо кнопки «Радио» создает уникальные tags идентификаторов name_0, name_1 и т. Д. Простым способом проверки выбранным является присвоение classа css, например

     var deliveryService; $('.deliveryservice input').each(function () { if (this.checked) { deliveryService = this.value } 

    По его словам, это будет нормально работать …

    Просто попробуйте с этим

      var GetValue=$('#radiobuttonListId').find(":checked").val(); 

    Значение Radiobuttonlist хранится в GetValue (переменная).

    Попробуй это:

     $("input[name='<%=RadioButtonList1.UniqueID %>']:checked").val() 

    следующий код, который мы в итоге создали. Сначала объясним краткое объяснение. Мы использовали «q_» для имени div, обернутого вокруг списка вопросов переключателя. Тогда у нас были «s_» для любых разделов. Следующий код перебирает вопросы, чтобы найти проверенное значение, а затем выполняет действие слайда в соответствующем разделе.

     var shows_6 = function() { var selected = $("#q_7 input:radio:checked").val(); if (selected == 'Groom') { $("#s_6").slideDown(); } else { $("#s_6").slideUp(); } }; $('#q_7 input').ready(shows_6); var shows_7 = function() { var selected = $("#q_7 input:radio:checked").val(); if (selected == 'Bride') { $("#s_7").slideDown(); } else { $("#s_7").slideUp(); } }; $('#q_7 input').ready(shows_7); $(document).ready(function() { $('#q_7 input:radio').click(shows_6); $('#q_7 input:radio').click(shows_7); }); 

    Следующее позволяет нам сделать вопрос обязательным …

      

    Вот пример фактического слоя show / hide

     

    Attire

    ...

    Попробуйте приведенный ниже код:

        

    Почему так сложно?

     $('#id:checked').val(); 

    Будет работать отлично!

    Решение Andrew Bullock работает отлично, я просто хотел показать вам свое и добавить предупреждение.

    //Прекрасно работает

     $('#<%= radBuffetCapacity.ClientID %> input').click(function (e) { var val = $('#<%= radBuffetCapacity.ClientID %>').find('input:checked').val(); //Do whatever }); 

    // Предупреждение – работает в firefox, но не в IE8 .. использовал это в течение некоторого времени, прежде чем заметить, что он не работал в IE8 … используется для всего, что работает во всех браузерах с jQuery при работе в одном.

     $('#<%= radBuffetCapacity.ClientID %>').change(function (e) { var val = $('#<%= radBuffetCapacity.ClientID %>').find('input:checked').val(); //Do whatever }); 

    Я проголосовал за ответ Винь, чтобы получить ценность.

    Если вам нужно найти соответствующую метку, вы можете использовать этот код:

    $('#ClientID' + ' input:checked').parent().find('label').text()

    По моему сценарию, мой JS был в отдельном файле, поэтому использование результата ответа ClientID не было благоприятным. Удивительно, но решение было так же просто, как добавить CssClass в RadioButtonList, который я узнал на DevCurry

    Просто отключите это решение, добавьте class в свой список переключателей

     ... 

    Как указывается в статье, когда отображается список радиокнопок, class «tbl» добавляется к окружающей таблице

     ...

    Теперь из-за добавленного classа CSS вы можете просто ссылаться на вход: радиоэлементы внутри вашей таблицы, основанные на селекторе classа css

     $(function () { var $radBtn = $("table.tbl input:radio"); $radBtn.click(function () { var $radChecked = $(':radio:checked'); alert($radChecked.val()); }); }); 

    Опять же, это позволяет избежать использования упомянутого выше «ClientID», который я нашел беспорядочным для своего сценария. Надеюсь это поможет!

    Я нашел простое решение, попробуйте следующее:

     var Ocasiao = ""; $('#ctl00_rdlOcasioesMarcas input').each(function() { if (this.checked) { Ocasiao = this.value } }); 
    Давайте будем гением компьютера.