2009-10-08 4 views
8

Ho bisogno di fare qualcosa di simile:Come si ottiene il valore verificato di asp: RadioButton con jQuery?

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

ed essere in grado di controllare il valore del valore selezionato del pulsante di scelta in jQuery, ma i miei tentativi come questi non restituiscono true/false.

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

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

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

Un piccolo aiuto?

risposta

17

Questo è probabilmente il modo più semplice per farlo. Il * = esegue ricerche nell'intero attributo id per rbDate che si occupa dell'intero mangling di ASP.NET.

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

io non capisco. Perché utilizzare il filtro attributo * contiene * quando l'ID è specifico? Mi sto perdendo qualcosa? – karim79

+0

+1 Da parte mia, a proposito. Questa risposta è perfettamente valida, ma se non ce la devi è veloce non dover corrispondere a una parte dell'ID. –

+0

È una cosa C# /. NET? – karim79

5

Mentre ChaosPandion's answer funzionerà sarebbe più veloce per avvolgere il vostro RadioButtonList in un div come questo:

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

Poi il codice jQuery può essere questo semplice:

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

Questa è una buona soluzione, ma nella maggior parte dei casi non si noterà nemmeno la differenza di velocità. – ChaosPandion

+0

+1 Soluzione pulita, l'intento è chiaro. –

+0

Extra div per semplificare (ma non più breve) jQuery non è un grande compromesso per quello che sto facendo. Grazie per l'idea, però! –

2

INamingContainer aggiunge un sacco di cose all'inizio dell'ID dell'effettivo html.

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

utilizzando il [id $ = rbDate] po 'sul selettore dice jQuery che si desidera l'ingresso con un ID che termina in rbDate

Ora, se si ha un che si voleva ottenere il valore selezionato di tutta la lista si potrebbe fare qualcosa di simile

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

che, fosse uno degli elementi selezionati restituirebbe il valore della scelta, o, in tale elenco pulsante di scelta.

0

Ecco la mia soluzione JQuery che utilizza l'ID asp.net:

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