2011-05-14 12 views
8

Ben Aşağıdaki HTML kodu var:jQuery ile birkaç onay kutusu nasıl kontrol edilir ve devre dışı bırakılır?

:

<input type="checkbox" value="1" /> 
<input type="checkbox" value="2" /> 
... 
<input type="checkbox" value="30" /> 

ve kullanıcı bir önceki ziyarette kutularının bazı kontrol etti ve bu değerler bir değişkene saklanır (sunucudan değerini alır)

myChoices = ["1", "5", "12"] 

Bu myChoices bir değere sahip tüm onay kutularını kontrol etmek kolaydır, onunla yapılabilir:

$.(':checkbox').val(myChoices) 

Fakat ben çek ve disabl hem istiyorum e bu kutular. Ben şu gibi bir çözüm var mı: Düzgün çalışır

$(':checkbox').each(function() 
      {if ($.inArray(this.value, myChoices) != -1) 
       {this.checked=true; this.disabled=true;} 
}) 

ama sadece bu kadar zarif val() benzer daha basit bir çözüm, bir şey, olup olmadığını merak ediyorum.

Teşekkürler.

+0

örnek bir Sen çalıştığını söylüyor olduğu; görünmüyor: http://jsfiddle.net/6mfSX/ –

+4

sunucudan veri alırsanız ve onay kutuları devre dışı bırakılırsa, neden bunları sunucuda php ile (veya kullandığınız her şeyi) etkisiz hale getirmiyorsunuz? . Daha kolay olabilir ama nasıl kullandığınızı tam olarak bilmiyorum :) – user489872

+0

@ aleksv'in önerisi üzerine, kontrol edilen ve devre dışı bırakılan bir onay kutusu, the_value '? –

cevap

3

Böyle yapabileceğini: Burada

$(":checkbox").val(myChoices).filter(":checked").attr("disabled",true); 

jsfiddle http://jsfiddle.net/P4VhK/

+0

wohow! Dizilerden ".val" a geçebileceğimizi hiç bilmiyordum. Bilmek gerçekten güzel. Bu tür kullanımlarla ilgili bazı belgelere işaret edebilir misiniz? –

+0

@Shrikant, dürüst olmak gerekirse, daha önce hiç yapmadım: D. Sadece Lejlek'in kodunda doğaçlama yaptım ve 'disabled' özniteliğini uyguladı. Yani kredi Lejlek'e ya da her kimden öğrenirse geçer. –

+0

Harika! Bu çözümü çok seviyorum. Sorunum, val() 'nin tamamlanmış kümeye döndürülmesiydi ve yalnızca kontrol edilen kutuları nasıl devre dışı bırakacağımı bilmiyordum. Teşekkür ederim! – Lejlek

İlgili konular