2009-10-08 7 views
8

tengo que hacer algo como esto:¿Cómo se obtiene el valor verificado de asp: RadioButton con jQuery?

<asp:RadioButton ID="rbDate" runat="server" Text="Date" GroupName="grpPrimary" /> 

y ser capaz de comprobar el valor del valor facturado del botón de radio en jQuery, pero mis intentos como estos no vuelven verdadero/falso.

if ($('[name=rbDate]').attr("Checked")) 

if ($('[name=rbDate]').attr("Checked").val()) 

if ($('[name=rbDate]:checked').val()) 

¿Necesitas ayuda?

Respuesta

17

Esta es probablemente la forma más fácil de hacerlo. El * = busca en el atributo de id. Completo rbDate que se ocupa de la creación de identificadores ASP.NET enteros.

$('input[id*=rbDate]').is(":checked"); 
+0

Yo no lo entiendo. ¿Por qué usar el filtro de atributo * contains * cuando el ID es específico? ¿Me estoy perdiendo de algo? – karim79

+0

+1 De mí, por cierto. Esta respuesta es perfectamente válida, pero si no es necesario, es rápido para no tener que coincidir con parte de la identificación. –

+0

¿Es esto una cosa de C# /. NET? – karim79

5

Mientras ChaosPandion's answer funcionará sería más rápido para envolver su RadioButtonList en un div así:

<div id="dateWrapper"> 
    <asp:RadioButton 
     ID="rbDate" 
     runat="server" 
     Text="Date" 
     GroupName="grpPrimary" /> 
</div> 

A continuación, el código de jQuery puede ser así de simple:

var selected = $("#dateWrapper input:radio:checked"); 
+0

Esta es una buena solución, pero en la mayoría de los casos ni siquiera notará la diferencia de velocidad. – ChaosPandion

+0

+1 Solución limpia, la intención es clara. –

+0

Divs adicionales para más simple (pero no más corto) jQuery no es una gran compensación para lo que estoy haciendo. ¡Gracias por la idea, sin embargo! –

2

INamingContainer añade un montón de cosas al comienzo de la identificación del html real.

$('input[id$=rbDate]').attr('checked') 

utilizando el [id $ = rbDate] poco en el selector dice jQuery que desea la entrada con un identificador que termina en rbDate

Ahora si has tenido una que quería obtener el valor seleccionado de toda la lista que podría hacer algo así como

$('input[name$=rbDate]:checked').val() 

cuales, fueron uno de los elementos seleccionados devolvería el valor de los seleccionados, o, en esa lista de botones de radio.

0

Aquí está mi solución jQuery que utiliza el ID de asp.net:

var rbSelected = $("#<%= rbDate.ClientID %>").is(":checked"); 
Cuestiones relacionadas