2010-01-15 20 views
79

Sono seduto con un problema, ho bisogno di verificare con JQuery se non è stato selezionato alcun pulsante di opzione all'interno di un gruppo di pulsanti di opzione, in modo che possa fornire gli utenti un errore javascript se si sono dimenticati di controllare un'opzione.Utilizzo di JQuery per verificare se non è stato selezionato alcun pulsante di opzione in un gruppo

Sto utilizzando il seguente codice per ottenere i valori

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

Sembra che la risposta di Doug è più utile del mio, per cui si potrebbe sia meglio usare il suo (vedi Sc il commento di ottE sulla mia risposta). Se la risposta di Doug funziona per te, potresti accettare il suo invece? –

+0

@DominicRodger Questo è molto cortese da parte vostra. –

risposta

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

Questo fallirà se il pulsante di opzione selezionato ha un valore = "" – ScottE

+1

@ScottE - punto eccellente - Rimuoverò questa risposta se Roland non lo accetta. –

+0

Penso che potresti semplicemente cambiarlo in '.val() ==" "' e rimuovere il '!' E saresti tutto pronto. –

30

Si potrebbe fare qualcosa di simile:

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

Non potresti restringere le prime due righe solo a 'if ($ (" input [nome = 'html_elementi']: spuntato "). Lunghezza == 0) {'? – Powerlord

+5

Si potrebbe, ma sarebbe necessaria un'altra selezione completa di jQuery per ottenere il valore se si mostrava un valore esistente. –

115

sto usando

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

E restituirà FALSE se tutti gli elementi nel gruppo radiografico sono deselezionato e VERO se un elemento è selezionato.

+6

La migliore risposta ancora per questa domanda. – FastTrack

+3

Questa risposta ha funzionato in modo affidabile per verificare se un gruppo di pulsanti di opzione avesse un valore selezionato. La migliore risposta nella discussione. –

+1

Entrambe le risposte di Dominic Rodger e Jacobo Hernández funzionano bene. Io personalmente cerco di non usare mai il principale NOT (!) All'inizio della riga. Anni dopo diventa difficile eseguire il debug quando si trascura quello e si ha la logica indietro ...is (": checked") è molto chiaro cosa stai facendo - La migliore risposta. – 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

Credo che questo sia un esempio semplice, come verificare se una radio in un gruppo di radio è stata controllata.

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

Sto usando questo molto semplice

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"); 
     } 

}

Problemi correlati