jQuery - js dizisi adını içeren tüm onay kutularını işaretleyin

4 Cevap php

I want to use a JQuery "check all" function in a form like this: http://jetlogs.org/jquery/jquery_select_all.html

My problem is I am generating my form from a php script, and I don't know exactly how many checkboxes I will have in advance. I use the "array" naming convention to be able to get all the selected checkbox values in my $_POST data... so my checkboxes are like that:

<input type="checkbox" name="items[]" value="<?php echo $id ?>">

ancak bu JQuery beyan işe yaramazsa:

$("input[@name=items[]]").each(function()    
{    
    this.checked = checked_status;    
});

"@ name = ürün []", ve bazı anti-koymak için: "[]" my "öğeleri" sonunda JQuery beyanı haberci ... Ben = ürün [] gibi isim @ yazmaya çalıştım çünkü muhtemelen yırtmaç [ve] bu yüzden özel karakterler olarak kabul değil ama işe yaramadı önce ...

Birisi bir çözüm bilen ve paylaşmaya istekli ise bu harika olurdu! :)

4 Cevap

'\ \' (Boşluk) ile iç ayraçlar Kaçış - bu sorunu çözmek gerekir.

Bu seçici benim için çalışıyor:

$('input[name=items\\[\\]]')

Her şeyden önce, sizin adı özelliği aynı isimde +1 unsurları ayarlamak için kullanılmalıdır. Bu pratik id özelliği ile aynıdır ve başvurular için hariç elemanı başına benzersiz olmalıdır, ama o sizin için geçerli değildir.

Sınıf özniteliğini kullanmayı deneyin, bunu yapmak istediğiniz şeyler için yapılmış!

Başka bir şey kodunuzda, bunu tıklanan elemanından nitelik olarak alır ne göre, sadece 'işaretli' için onay kutularını ayarlayabilirsiniz, ancak işaretini kaldırın, asla bu kod doğru veya yanlış kontrol için onay kutularını ayarlamak olacaktır.

Eğer böyle bir şey yapabilirsiniz:

Bir kimliği ile onay kutusunu tüm set

 <input type="checkbox" id="checkAll">

Sonra kontrol edilmelidir tüm onay kutularını ayarlanmış / işaretlenmemiş bir sınıf

<input type="checkbox" class="checked">

Ve sen jQuery böyle bir şey yapabilirsiniz

$("#checkAll").click( function(){
 var checkedValue = $(this).attr("checked");
 $("input.checked").attr("checked", checkedValue); });

Bu kimliği ile biri olarak aynı işaretli özniteliği kontrol sınıfı ile tüm onay kutularını değişecek checkall

Kullanmayı deneyin

$('input[name="items[]"]')

Hayır @ ihtiyacı ve kullanımı ". Seçici dışında tırnak unutmayın '. Aksi takdirde çözümleme hatasına neden olabilir.

$("input[name='smsid[]']")

Bu kod benim için çalışıyor ...