2010-11-09 12 views
5

Come posso determinare se i miei pulsanti radio sono selezionati?JQuery: come determinare se un pulsante di opzione è stato selezionato?

Ad esempio:

if (radio_button_selected) { 

// do something 

} else { 

// do something else 

} 
+0

Questa domanda è stato chiesto prima di numerose volte. Si prega di cercare la risposta prima di fare la domanda. http://stackoverflow.com/questions/4138300/validating-a-form-with-a-radio-button/4138350#4138350 – zzzzBov

risposta

7

È possibile utilizzare questo selettore per determinare se sono verificati:

jQuery("input[name='my_button_group']:checked") 

Così, per esempio:

if (jQuery("input[name='my_button_group']:checked")) { 
    ... 
} 
else { 
    ... 
} 
+0

perché ho bisogno di **. lunghezza> 0 **? – StaceyH

+0

@StaceyH: non in JavaScript, ma questo è un selettore molto più veloce dell'altra risposta (a causa dell'ingresso). –

+0

@Nick Craver ... non sono sicuro che tu possa vedere i miei commenti dal mio post..ma dai un'occhiata a –

1
if ($("input[name='yourRadioName']:radio:checked").length) { 
} else { 
} 
+0

@Nick Craver ... C'è una differenza nel metodo di Justin contro il mio. il ': radio' assicura che sia selezionato un pulsante radio e non solo qualsiasi input controllato con il nome" yourRadioName ". Comunque hai ragione, l'input potrebbe essere eseguito più velocemente. –

1

Se si dispone di il tuo pulsante radio rb già selezionati attraverso altri mezzi, si può fare:

var rb = $('whatever selector'); 

// other code 

if (rb.is(':checked')) 
{ 
    // code 
} 
+0

+1 per essere in grado di riutilizzare rb per qualcos'altro nel codice (come ottenere val()) – Ben

+0

@jelbourn 'rb.checked' è una scelta migliore - è più veloce e più leggibile. –

+0

@ Šime Vidas: 'checked' non è una proprietà di un oggetto jquery list. L'oggetto DOM attuale ha la proprietà 'checked'. – jelbourn

1

Se si dispone di un riferimento all'elemento già, è possibile utilizzare la sua proprietà checked:

$('input[type=radio]').focus(function(){ 
    // "this" is the element that was clicked 

    if (this.checked) { 
     // do something 
    } else { 
     // do something else 
    } 
}); 
+1

Non è inutile perché se l'utente "fa clic" su un pulsante di opzione, sarà sempre "controllato", quindi non accederai MAI alla condizione ELSE del tuo codice sopra – StaceyH

+0

@StaceyH Molto buona punto. Cambiato su "focus" per illustrare il mio punto. – lonesomeday

Problemi correlati