2010-11-09 14 views
5

¿Cómo puedo determinar si mis botones de opción están seleccionados?JQuery: ¿Cómo determinar si se ha seleccionado un botón de opción?

Por ejemplo:

if (radio_button_selected) { 

// do something 

} else { 

// do something else 

} 
+0

Esta pregunta se ha hecho antes en numerosas ocasiones. Busque la respuesta antes de hacer la pregunta. http://stackoverflow.com/questions/4138300/validating-a-form-with-a-radio-button/4138350#4138350 – zzzzBov

Respuesta

7

Puede utilizar este selector para determinar si alguno se comprueban:

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

Así, por ejemplo:

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

¿por qué necesito **. length> 0 **? – StaceyH

+0

@StaceyH: no lo hace en JavaScript, pero este es un selector mucho más rápido que la otra respuesta (debido a la 'entrada'). –

+0

@Nick Craver ... no estaba seguro de poder ver mis comentarios desde mi publicación ... pero eche un vistazo –

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

@Nick Craver ... Hay una diferencia en el método de Justin vs. el mío. el ': radio' asegura que se seleccione un botón de opción y no solo cualquier entrada marcada con el nombre" yourRadioName ". Sin embargo, tiene razón al utilizar la entrada se ejecutará más rápido. –

1

Si tiene su botón de radio rb ya seleccionados a través de otros medios, que puede hacer:

var rb = $('whatever selector'); 

// other code 

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

+1 por poder reutilizar rb para otra cosa en el código (como obtener val()) – Ben

+0

@jelbourn 'rb.checked' es una mejor opción, es más rápido y más legible. –

+0

@ Šime Vidas: 'checked' no es propiedad de un objeto de la lista jquery. El objeto DOM real tiene la propiedad 'checked'. – jelbourn

1

Si usted tiene una referencia al elemento ya, puede utilizar su propiedad checked:

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

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

No es tan inútil ya que si el usuario "hace clic" en un botón de opción, siempre será "verificado", por lo tanto NUNCA llegarás a la condición ELSE de tu código por encima de – StaceyH

+0

@StaceyH A muy bueno punto. Cambió a 'focus' para ilustrar mi punto. – lonesomeday

Cuestiones relacionadas