Menggunakan jquery untuk memeriksa semua kotak centang dengan nama kelas tertentu


215

Saya tahu saya bisa memeriksa semua kotak centang pada halaman menggunakan ini:

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

Tetapi saya sekarang menggunakan ini pada halaman yang memiliki beberapa kotak centang lain yang tidak ingin saya sertakan. Bagaimana saya mengubah kode di atas untuk hanya melihat kotak centang dicentang yang memiliki kelas tertentu pada mereka?


Haruskah saya memperbarui judul untuk dikatakan, classbukan name?
Russ Cam

@Russ Cam - sudah selesai
leora

$ ('input [type = checkbox] :checked') juga akan berfungsi.
super keren

Jawaban:


392

$('.theClass:checkbox:checked')akan memberi Anda semua kotak centang yang dicentang dengan kelas theClass.


8
Bagus. Juga, $ ('. TheClass: kotak centang: tidak (: dicentang)') akan mendapatkan semua yang tidak dicentang.
Venugopal M

Bisakah saya melakukan ini untuk semua kotak centang dengan nama?
FluffyBeing

Bagaimana saya bisa menambahkan kelas lain pada elemen yang diperiksa? Saya ingin menunjukkan batas pada elemen input yang diperiksa.
Najam Us Saqib

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

Contoh untuk ditunjukkan.

:checkboxadalah pemilih untuk kotak centang (pada kenyataannya, Anda bisa menghilangkan inputbagian dari pemilih, meskipun saya menemukan kasus khusus di mana Anda akan mendapatkan hasil aneh melakukan ini di versi perpustakaan sebelumnya. Saya yakin mereka diperbaiki di versi yang lebih baru). .classadalah pemilih untuk atribut kelas elemen yang mengandung class.


9
Catatan Jquery pada: centang merekomendasikan untuk tetap dengan [type = "checkbox"]. $ ('[type = "checkbox"]. class') .... atau $ ('input [type = "checkbox"]. class')
TSmith

@ Tukang kayu apakah Anda memiliki referensi?
Russ Cam

9
Saya membacanya dari sini: api.jquery.com/checkbox-selector ... di bawah "Catatan Tambahan"
TSmith

72

.mapContoh wajib :

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

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

@ Feded: perintah Anda memberikan on,onsebagai hasilnya ('on' untuk setiap kotak centang diperiksa)
Jay

@ Jay Anda perlu mengatur atribut nilai dari kotak centang Anda untuk mendapatkan nilainya dalam string yang dipisahkan koma
Kamran Ali

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

Ini akan mendapatkan semua kotak centang dari nama kelas "yourClass". Saya suka contoh ini karena menggunakan pemilih jQuery diperiksa daripada melakukan pemeriksaan bersyarat. Secara pribadi saya juga akan menggunakan array untuk menyimpan nilai, kemudian menggunakannya sesuai kebutuhan, seperti:

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

Jika ada kebutuhan untuk menyimpan nilai-nilai dalam array, .mapbisa menjadi alternatif yang lebih menyenangkan, seperti yang diilustrasikan oleh jawaban karim79.
duplode

1
terima kasih :) saya perlu menemukan semua kotak centang dicentang dan jawaban Anda melakukan itu.
ufk

13

Jika Anda perlu mendapatkan nilai dari semua kotak centang yang dicentang sebagai array:

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

Saya tidak yakin apakah itu membantu untuk kasus khusus Anda, dan saya tidak yakin jika dalam kasus Anda, kotak centang yang ingin Anda sertakan hanya semua adalah bagian dari satu formulir atau div atau tabel, tetapi Anda selalu dapat memilih semua kotak centang di dalam elemen tertentu. Sebagai contoh:

<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>

Kemudian, menggunakan jQuery berikut, HANYA melewati kotak centang dalam UL dengan id = "selective":

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


7

Anda dapat menggunakan sesuatu seperti ini:
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")


Ini akan memilih nilai 1 dan 3.


Ini jawaban terbaik.
Marcos Buarque

7

Cara sederhana untuk memasukkan semua nilai ke dalam array

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

})();

console.log(valores);

7

Anda bisa coba seperti ini

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

Saya tahu ini sudah memiliki banyak jawaban yang bagus untuk pertanyaan ini, tetapi saya menemukan ini saat browsing dan saya merasa sangat mudah digunakan. Kupikir aku akan berbagi untuk orang lain yang mencari.

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);
    });
});

Referensi: "Periksa Semua" yang termudah dengan jQuery


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');
        }
    });
});

silakan pertimbangkan untuk menambahkan komentar untuk menjelaskan jawaban Anda sehingga akan lebih mudah untuk memahami bagi yang belum tahu
Simas Joneliunas

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

1
tolong jelaskan tentang apa kode ini. Ini akan membantu orang lain untuk mengerti
Shafin Mahmud
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.