2010-01-15 21 views
79

Bir sorunla oturuyorum, bir radyo düğmesi grubu içinde hiçbir radyo düğmesi kontrol edilmediyse JQuery ile kontrol etmem gerekiyor, böylece Kullanıcılar bir seçeneği kontrol etmeyi unuttularsa bir javascript hatası. Ben Böyle bir şey yapabileceğini değerleriJQuery kullanarak bir grupta radyo düğmesi kontrol edilip edilmediğini kontrol etmek için

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

Görünüşe kullanıyorum onun kullanarak daha iyi ol (Sc bakın cevabım ile ilgili ottE yorumu. Eğer Doug'un cevabı senin için çalışıyorsa, onun yerine kabul edebilir misin? –

+0

@DominicRodger Çok kibar davrandınız Efendim. –

cevap

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

İşaretlenen radyo düğmesi bir değere sahipse başarısız olur = "" – ScottE

+1

@ScottE - mükemmel nokta - Roland bu yanıtı kaldırırsa bu cevabı kaldıracağım. –

+0

Sanırım onu ​​sadece .val() == "" 'olarak değiştirebilir ve'! 'Yi kaldırabilirsiniz. –

30

almak için aşağıdaki kodu kullanıyorum

: Ben kullanıyorum

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

İlk iki satırı sadece "if ($ (" input [name = 'html_elements']: checked "). Length == 0) {'? – Powerlord

+5

Yapabilirdiniz, ancak bir değer gösterdiyseniz, değeri almak için başka bir tam jQuery seçimine ihtiyacınız olacaktır. –

115

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

Radyo grubundaki tüm öğeler varsa FALSE döndürür Bir öğe işaretli ise işaretlenmemiş ve TRUE.

+6

Bu soru için henüz en iyi cevap. – FastTrack

+3

Bu cevap, bir radyo düğmesi grubunun seçilmiş bir değere sahip olup olmadığını kontrol etmek için güvenilir bir şekilde çalıştı. İpte en iyi cevap. –

+1

Hem Dominic Rodger hem de Jacobo Hernández'ın cevabı iyi çalışıyor. Şahsen hiç bir zaman hattın başında olmayan NOT (!) 'I kullanmaya çalışmıyorum. Yıllar sonra bunu gözden kaçırdığınızda ve mantığa geri döndüğünde hata ayıklaması zorlaşır ...(": kontrol") yaptığınız şey çok açık - En iyi cevap. – Scott

5
if ($("input[name='html_elements']:checked").size()==0) { 
    alert('Nothing is checked!'); 
} 
else { 
    alert('One of the radio buttons is checked!'); 
} 
3

Kullanım .length radyoların bir grup bir radyo işaretli olmadığını da kontrol etmek nasıl http://api.jquery.com/checked-selector/

if ($('input[name="html_elements"]:checked').length === 0) alert("Not checked"); 
else alert("Checked"); 
1
var len = $('#your_form_id input:radio:checked').length; 
     if (!len) { 
     alert("None checked"); 
     }; 
     alert("checked: "+ len); 
2

Bu basit bir örnek olduğunu düşünüyorum, bakın.

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

Ben bu kadar basit

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

} Doug cevabı benimkinden daha kullanışlıdır gibi öldürürsün böylece

İlgili konular