Lectura del valor seleccionado de asp: RadioButtonList usando jQuery

Tengo un código similar al siguiente …

Quiero capturar un evento cuando la lista de radio blBuffetMealFacilities: chk cambia del lado del cliente y realiza una función de deslizamiento hacia abajo en el div HasBuffet de jQuery. ¿Cuál es la mejor manera de crear esto, teniendo en cuenta que hay varias secciones similares en la página, donde quiero que se revelen las preguntas dependiendo de una respuesta afirmativa en una lista de radio.

esta:

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

obtendrá el índice del botón de opción que se hizo clic (creo, no probado) (tenga en cuenta que ha tenido que ajustar su RBL en #rblDiv

usted podría usar eso para mostrar el div correspondiente de esta manera:

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

¿Es eso lo que querías decir?

Editar: Otro enfoque sería darle al rbl un nombre de clase, luego ir:

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

La forma más sencilla de recuperar el valor comprobado de RadioButtonList1 es:

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

Edita por Tim:

donde RadioButtonList1 debe ser el ClientID de RadioButtonList

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

Esto funcionó para mí …

  Yes! Not now Never!  

El controlador:

 $(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?"); } }); }); 

La parte importante: $ (“input [name = ‘<% = Intent.UniqueID%>‘]: radio: checked”). Val ();

Una lista de botones de radio en lugar de un botón de radio crea tags de identificación únicas nombre_0, nombre_1, etc. Una forma fácil de probar cuál se selecciona es asignando una clase css como

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

Según mi, funcionará bien …

Solo prueba con esto

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

El valor de Radiobuttonlist que se almacenará en GetValue (Variable).

Prueba esto:

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

siguiente es el código que finalmente creamos. Una breve explicación primero. Usamos una “q_” para el nombre de div en la lista de preguntas del botón de opción. Luego tuvimos “s_” para cualquier sección. El siguiente código recorre las preguntas para encontrar el valor comprobado y luego realiza una acción de diapositiva en la sección correspondiente.

 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); }); 

Lo siguiente nos permite hacer que la pregunta sea obligatoria …

  

Aquí hay un ejemplo de la capa de mostrar / ocultar real

 

Attire

...

Pruebe el siguiente código:

    

¿Por qué tan complejo?

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

¡Funcionará bien!

La solución de Andrew Bullock funciona muy bien, solo quería mostrarte la mía y agregar una advertencia.

//Funciona genial

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

// Advertencia: funciona en Firefox pero no en IE8 .. usé esto por un tiempo antes de notar que no funcionaba en IE8 … acostumbraba todo lo que funcionaba en todos los navegadores con jQuery cuando trabajaba en uno.

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

Voté por la respuesta de Vinh para obtener el valor.

Si necesita encontrar la etiqueta correspondiente, puede usar este código:

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

Para mi caso, mi JS estaba en un archivo separado, por lo que usar una salida de respuesta ClientID no fue propicio. Sorprendentemente, la solución fue tan simple como agregar un CssClass a RadioButtonList, que descubrí en DevCurry

Solo en caso de que esa solución desaparezca, agregue una clase a su lista de botones de radio

 ... 

Como señala el artículo, cuando se muestra la lista del botón de opción, la clase “tbl” se agrega a la tabla que lo rodea

 ...

Ahora, debido a la clase de CSS que se ha anexado, puede referirse a la entrada: elementos de radio dentro de su tabla, en función del selector de clase css

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

De nuevo, esto evita usar el “ClientID” mencionado anteriormente que encontré desordenado para mi escenario. ¡Espero que esto ayude!

Encontré una solución simple, prueba esto:

 var Ocasiao = ""; $('#ctl00_rdlOcasioesMarcas input').each(function() { if (this.checked) { Ocasiao = this.value } });