2010-01-15 18 views
79

Estoy sentado con un problema, necesito consultar con JQuery si no se ha marcado ningún botón de opción dentro de un grupo de botones de radio, para poder dar el usuarios un error de javascript si olvidaron marcar una opción.Usando JQuery para verificar si no se ha marcado ningún botón de opción en un grupo

estoy usando el siguiente código para obtener los valores

var radio_button_val = $("input[name='html_elements']:checked").val(); 
+1

Parece que la respuesta de Doug es más útil que la mía, así que puede ser mejor que usar el suyo (ver Sc el comentario de ottE sobre mi respuesta). Si la respuesta de Doug funciona para usted, ¿podría aceptar la suya? –

+0

@DominicRodger Eso es muy cortés de su parte, señor. –

Respuesta

118
if (!$("input[name='html_elements']:checked").val()) { 
    alert('Nothing is checked!'); 
} 
else { 
    alert('One of the radio buttons is checked!'); 
} 
+12

Esto fallará si el botón de opción marcado tiene un valor = "" – ScottE

+1

@ScottE - punto excelente - Eliminaré esta respuesta si Roland no lo acepta. –

+0

Creo que podrías simplemente cambiarlo a '.val() ==" "' y eliminar el '!' Y estarías todo listo. –

30

Se podría hacer algo como esto:

var radio_buttons = $("input[name='html_elements']"); 
if(radio_buttons.filter(':checked').length == 0){ 
    // None checked 
} else { 
    // If you need to use the result you can do so without 
    // another (costly) jQuery selector call: 
    var val = radio_buttons.val(); 
} 
+2

¿No podría limitar las dos primeras líneas a '' if ($ ("input [name = 'html_elements']: checked"). Length == 0) {'? – Powerlord

+5

Podría, pero luego necesitaría otra selección completa de jQuery para obtener el valor si mostraba que existía un valor. –

115

estoy usando

$("input:radio[name='html_radio']").is(":checked") 

Y devolverá FALSE si todos los elementos en el radiogrupo son sin marcar y VERDADERO si un elemento está marcado.

+6

La mejor respuesta hasta ahora para esta pregunta. – FastTrack

+3

Esta respuesta funcionó para mí confiablemente para verificar si un grupo de botones de radio tenía un valor seleccionado. La mejor respuesta en el hilo. –

+1

Tanto la respuesta de Dominic Rodger como la de Jacobo Hernández funcionan bien. Personalmente trato de nunca usar el NO líder (!) Al comienzo de la línea. Años más tarde es difícil depurarlo cuando pasas por alto eso y tienes la lógica al revés ...is (": checked") es muy claro lo que estás haciendo - La mejor respuesta. – Scott

5
if ($("input[name='html_elements']:checked").size()==0) { 
    alert('Nothing is checked!'); 
} 
else { 
    alert('One of the radio buttons is checked!'); 
} 
1
var len = $('#your_form_id input:radio:checked').length; 
     if (!len) { 
     alert("None checked"); 
     }; 
     alert("checked: "+ len); 
2

Creo que esto es un ejemplo sencillo, cómo comprobar si se comprobó una radio en un grupo de radios.

if($('input[name=html_elements]:checked').length){ 
    //a radio button was checked 
}else{ 
    //there was no radio button checked 
} 
0

estoy usando esta cantidad sencilla

HTML

<label class="radio"><input id="job1" type="radio" name="job" value="1" checked>New Job</label> 
<label class="radio"><input id="job2" type="radio" name="job" value="2">Updating Job</label> 


<button type="button" class="btn btn-primary" onclick="save();">Save</button> 

SCRIPT

$('#save').on('click', function(e) { 
    if (job1.checked) 
     { 
       alert("New Job"); 
     } 
if (job2.checked) 
     { 
      alert("Updating Job"); 
     } 

}

Cuestiones relacionadas