Belirli bir sınıf adına sahip tüm işaretli onay kutularını almak için jquery kullanma


215

Bunu kullanarak bir sayfada tüm işaretli onay kutularını alabilirsiniz biliyorum:

$('input[type=checkbox]').each(function () {
    var sThisVal = (this.checked ? $(this).val() : "");
});

Ancak şimdi bunu eklemek istemediğim bazı onay kutularının bulunduğu bir sayfada kullanıyorum. Yukarıdaki kodu yalnızca üzerinde belirli bir sınıfı olan işaretli onay kutularına bakmak için nasıl değiştirebilirim?


classBunun yerine söz konusu başlığı güncelleyecek miyim name?
Russ Cam

@Russ Cam - zaten yapıldı
leora

$ ('input [type = checkbox] :checked') da çalışır.
Süper havalı

Yanıtlar:


392

$('.theClass:checkbox:checked')sınıfla birlikte tüm işaretli onay kutularını verir theClass.


9
Güzel. Ayrıca, $ ('. TheClass: checkbox: not (: işaretli)') tüm işaretlenmemiş olanları alır.
Venugopal M

Bunu adı olan tüm onay kutuları için yapabilir miyim?
FluffyBeing

İşaretli öğelere nasıl başka bir sınıf ekleyebilirim? İşaretli giriş öğelerinde kenarlık göstermek istiyorum.
Najam Us Saqib

120
$('input:checkbox.class').each(function () {
       var sThisVal = (this.checked ? $(this).val() : "");
  });

Bir örnekGöstermek için .

:checkboxonay kutuları için bir seçicidir (aslında, inputkütüphanenin önceki sürümlerinde bunu yapan garip sonuçlar alacağınız niş durumlarda bulduğum halde, seçicinin bir kısmını atlayabilirsiniz . Daha sonraki sürümlerde düzeltildiğinden eminim). .classiçeren öğe sınıfı özniteliği için seçicidir class.


9
Jquery ile ilgili notlar: checkbox [type = "checkbox"] ile devam etmenizi önerir. $ ('[type = "onay kutusu"]. sınıf') .... veya $ ('giriş [type = "onay kutusu"]. sınıf')
TSmith

@TSmith referansınız var mı?
Russ Cam

9
Bunu buradan okudum: api.jquery.com/checkbox-selector ... "Ek Notlar" altında
TSmith

73

Zorunlu .mapörnek:

var checkedVals = $('.theClass:checkbox:checked').map(function() {
    return this.value;
}).get();
alert(checkedVals.join(","));

3
$ ('input.theClass: işaretli'). map (function () {return this.value}). get (). join (',');
Fedir RYKHTIK

@Fedir: komutunuz on,onsonuç verir (işaretlenen her onay kutusu için 'açık')
Jay

@Jay Koma ile ayrılmış bir dizede değerlerini almak için onay kutularınızın değer özelliklerini ayarlamanız gerekir
Kamran Ali

21
$('input.yourClass:checkbox:checked').each(function () {
    var sThisVal = $(this).val();
});

Bu, "yourClass" sınıf adının tüm onay kutularını alır. Koşullu bir kontrol yapmak yerine kontrol jQuery seçici kullandığından bu örneği seviyorum . Şahsen ben de değeri saklamak için bir dizi kullanın, sonra gerektiği gibi bunları kullanın:

var arr = [];
$('input.yourClass:checkbox:checked').each(function () {
    arr.push($(this).val());
});

Değerleri bir dizide saklamak .mapgerekirse, karim79'un cevabında gösterildiği gibi daha hoş bir alternatif olabilir.
13'te

1
teşekkür ederim :) tüm işaretli onay kutularını bulmak gerekiyordu ve cevabınız bunu yapar.
ufk

13

İşaretli tüm onay kutularının değerini bir dizi olarak almanız gerekiyorsa :

let myArray = (function() {
    let a = [];
    $(".checkboxes:checked").each(function() {
        a.push(this.value);
    });
    return a;
})()

10
 $('input.theclass[type=checkbox]').each(function () {
   var sThisVal = (this.checked ? $(this).val() : "");
 });

8

Sizin durumunuza yardımcı olup olmadığından emin değilim ve sizin durumunuzda, dahil etmek istediğiniz onay kutularının tek bir formun veya div veya tablonun bir parçası olup olmadığından emin değilim, ancak her zaman tüm onay kutularını seçebilirsiniz belirli bir öğenin içinde. Örneğin:

<ul id="selective">
 <li><input type="checkbox" value="..." /></li>
 <li><input type="checkbox" value="..." /></li>
 <li><input type="checkbox" value="..." /></li>
 <li><input type="checkbox" value="..." /></li>
</ul>

Sonra, aşağıdaki jQuery kullanarak, SADECE bu UL içindeki onay kutularını id = "selective" ile geçer:

$('#selective input:checkbox').each(function () {
 var sThisVal = (this.checked ? $(this).val() : "");
});


7

Bunun gibi bir şey kullanabilirsiniz:
HTML:

<div><input class="yourClass" type="checkbox" value="1" checked></div>
<div><input class="yourClass" type="checkbox" value="2"></div>
<div><input class="yourClass" type="checkbox" value="3" checked></div>
<div><input class="yourClass" type="checkbox" value="4"></div>


JQuery:

$(".yourClass:checkbox").filter(":checked")


1 ve 3 değerlerini seçecektir.


Bu en iyi cevap.
Marcos Buarque

7

Tüm değerleri bir diziye almanın basit yolu

var valores = (function () {
    var valor = [];
    $('input.className[type=checkbox]').each(function () {
        if (this.checked)
            valor.push($(this).val());
    });
    return valor;

})();

console.log(valores);

7

Bunu deneyebilirsin

let values = (function() {
                let a = [];
                $(".chkboxes:checked").each(function() {
                    a.push($(this).val());
                });
                return a;
            })();

4
<input type="checkbox" id="Checkbox1" class = "chk" value = "1" />
<input type="checkbox" id="Checkbox2" class = "chk" value = "2" />
<input type="checkbox" id="Checkbox3" class = "chk" value = "3" />
<input type="checkbox" id="Checkbox4" class = "chk" value = "4" />
<input type="button" id="demo" value = "Demo" />

<script type = "text/javascript" src = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
    $("#demo").live("click", function () {
        $("input:checkbox[class=chk]:checked").each(function () {
            alert("Id: " + $(this).attr("id") + " Value: " + $(this).val());
        });
    });
</script>

http://www.jqueryfaqs.com/Articles/Get-values-of-all-checked-checkboxes-by-class-name-using-jQuery.aspx


3

Bunun bu soruya zaten çok sayıda harika cevabı olduğunu biliyorum, ancak bunu gezinirken buldum ve kullanımı gerçekten çok kolay buluyorum. Bakan herkes için paylaşacağımı düşündüm.

HTML:

<fieldset>
    <!-- these will be affected by check all -->
    <div><input type="checkbox" class="checkall"> Check all</div>
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
</fieldset>
<fieldset>
    <!-- these won't be affected by check all; different field set -->
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
    <div><input type="checkbox"> Checkbox</div>
</fieldset>

jQuery:

$(function () {
    $('.checkall').on('click', function () {
        $(this).closest('fieldset').find(':checkbox').prop('checked', this.checked);
    });
});

Referans: jQuery ile en kolay "Tümünü Kontrol Et"


1
$(document).ready(function(){
    $('input.checkD[type="checkbox"]').click(function(){
        if($(this).prop("checked") == true){
            $(this).val('true');
        }
        else if($(this).prop("checked") == false){
            $(this).val('false');
        }
    });
});

lütfen
deneyimsizler

-1
$("input[name='<your_name_of_selected_group_checkboxes>']:checked").val()

1
lütfen bu kodun ne hakkında olduğunu açıklayın. Başkalarının anlamasına yardımcı olacak
Shafin Mahmud
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.