Чтение выбранного значения из 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 } });