2012-12-06 35 views
11

ben html öğeleri, 4 örnek vardır:jQuery. (Kontrol edildi) dışındaki tüm onay kutularını işaretini nasıl

<div> 
    <div><input type="checkbox" class="foo"> Checkbox</div> 
    <div><input type="checkbox" class="foo"> Checkbox</div> 
    <div><input type="checkbox" class="foo"> Checkbox</div> 
    <div><input type="checkbox" class="foo"> Checkbox</div> 
    <div><input type="checkbox" class="foo"> Checkbox</div> 
    <div><input type="checkbox" class="foo"> Checkbox</div> 
</div> 

Ve şimdi, bir sonraki istiyorum: Ben herhangi bir onay kutusunu tıklarsanız - Onay kutusu işaretli ve diğer edilmelidir onay kutuları işaretlenmemiş olmalıdır. Nasıl yapabilirim?

+1

Ne bir radyo düğmesi ... François Wahl, hiçbir sorun @ – RRikesh

+0

denir istiyorum! Bunu bilmiyordum. – Andrew

cevap

23

radio düğmesini kullanabilir ve bunları name niteliklerine göre gruplayabilirsiniz. Eğer checkboxes ile yapmak varsa o zaman yapabilirsiniz, dinamik İçin

Live Demo

$('.foo').click(function(){  
     $('.foo').attr('checked', false); 
     $(this).attr('checked', true);   
}); 

Eğer statik ebeveyni ile olay temsilci sağlar on ihtiyaç html oluşturulan, bu şekilde yapabiliriz Belgeyi kullanıp statik ebeveyn tanımıyorsunuz.

$(document).on('click','.foo', function(){  
     $('.foo').attr('checked', false); 
     $(this).attr('checked', true);   
}); 

Bilindiği takdirde belge, statik üst öğe tarafından değiştirilebilir. Örneğin. dinamik olarak oluşturulmuş içeren div id parentdiv varsa o zaman

`$('#parentdiv').on('click','.foo', function(){` 

Düzenleme

kullanın prop yerine özelliklerinin checked, selected veya belgelere göre disabled için attr sahip olabilir. jQuery 1.6 ile

, .attr() yöntemi döndürür ayarlanmamış özelliklere tanımsız. gibi DOM özelliklerini form öğelerinin işaretli, seçili veya devre dışı durumuna geri döndürmek ve değiştirmek için .prop() yöntemini kullanın.

+0

Cevabınız için çok teşekkür ederim. Radiobutton grubunu biliyorum. Ama kullanamıyorum çünkü Spring MVC kontrol cihazım için farklı isim parametrelerine sahip olmalıyım. Bu nedenle, çalışma çözümü ve DEMO için onay kutusunu ve JavaScript'i – Andrew

+21

+ 1 kullanmaya karar verdim. Genel olarak, bir 1-liner alternatifi olurdu: '$ ('foo'), (bu) .attr ('kontrol', yanlış);' – Nope

+0

Teşekkür @ FrançoisWahl, Önerilen ifade çok güzel. – Adil

0

İşte oldu biraz üzerinde çalışıyor gibi açıklanmıştır:

.siblings("input[type='checkbox']").attr("checked", true); 

tıklanan biri hariç tüm onay kutularını seçecektir.

$("input[type=checkbox]").on("click", function() { 
 

 
    if ($(this).val() == "none") { 
 
    
 
    $(this).siblings("input[type=checkbox]").attr('checked', false); 
 
    
 
    } else { 
 
    
 
    $(this).siblings("input[value=none]").attr('checked', false); 
 

 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 

 
    <input type="checkbox" id="worker-soft-eaglesoft" checked><label for="worker-soft-eaglesoft">&nbsp;Eaglesoft</label><br> 
 
    <input type="checkbox" id="worker-soft-dentrix"><label for="worker-soft-dentrix">&nbsp;Dentrix</label><br> 
 
    <input type="checkbox" id="worker-soft-softDent"><label for="worker-soft-softDent">&nbsp;Soft-Dent</label><br> 
 
    <input type="checkbox" id="worker-soft-denticon"><label for="worker-soft-denticon">&nbsp;Denticon</label><br> 
 
    <input type="checkbox" id="worker-soft-other"><label for="worker-soft-other">&nbsp;Other</label><br> 
 

 
    <input type="checkbox" id="worker-soft-none" value="none"> 
 
    <label for="worker-soft-none">&nbsp;No Software Experience - Paper Records Only</label><br> 
 
</div>

İlgili konular