2011-06-10 14 views
5

Bir kullanıcının keyfi bireyler için veri gireceği bir uygulama olmasını isterim. Her birey en fazla altı altı seçenek arasından seçim yapabilir. Herhangi bir kişi üzerinde jquery kullanarak en fazla üç seçenek zorlamak için yardım istiyorum. Burada gruplama onay kutularını işaretleme ve her bir grupta en fazla üç tane kontrol etme izni verme

örnek bir kod

<div id="subscriber_1"> 
    <input type=checkbox name=national> 
    <input type=checkbox name=international> 
    <input type=checkbox name=business> 
    <input type=checkbox name=entertainment> 
    <input type=checkbox name=religion> 
    <input type=checkbox name=sports> 
</div> 

aboneler subscriber_1, subscriber_2 ... subscriber_20 gibi, 20 kadar çalıştırılır. Yardımın için minnettar olacağım. Bu jQuery

<div id="subscriber_1" class="subscriber">...</div> 
<div id="subscriber_2" class="subscriber">...</div> 

Ve kullanın:

$('.subscriber :checkbox').change(function() { 
    var $cs = $(this).closest('.subscriber').find(':checkbox:checked'); 
    if ($cs.length > 3) { 
     this.checked = false; 
    } 
}); 

jsFiddle Demo

Açıklama

cevap

10

Bunu daha kolay olay işleyicileri eklemek yapmak, abone div öğelerine bir sınıf eklemek gerekir : Bu onay kutularının değişiklik durumunda,sınıfına en yakın olan ebeveynleri ararız.. Bu div içindeki kontrol kutularını alıyoruz. Eğer 3'ten fazla varsa (o anda kontrol edilen bir sayı da), mevcut olanın işaretini kaldırıyoruz. kesinlikle sınıfları eklemek istemiyorsanız


, bunun yerine bu seçiciyi kullanabilirsiniz:

$('[id^="subscriber_"] :checkbox')... 

Bu Attribute Starts With Selector denir.

+0

+1; Bir ui perspektifinden de, işleyicinin '3 kutuyu kontrol etmesine izin verildi' gibi bir şey söyleyen bir mesaj (modal olmayan) göstermesini öneririm ... – Jeff

+0

Tamam, bunu denedim. Javascript'i control.js adlı bir dosyaya koydum ve başlık etiketine ekledim. Birkaç kez denedim ama seçim sınırsız. Kodum veya yapmamda neyin yanlış olduğunu – Tamseyc

+0

@Tamseyc 'document.ready() 'içine koydun mu? Önerdiğim sınıfı eklediniz mi? – kapa

İlgili konular