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?

leora
sumber
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.

Cokegod
sumber
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.

Russ Cam
sumber
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(","));
karim79
sumber
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());
});
alienriver49
sumber
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;
})()
Faraz Kelhini
sumber
10
 $('input.theclass[type=checkbox]').each(function () {
   var sThisVal = (this.checked ? $(this).val() : "");
 });
Puncak gunung
sumber
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() : "");
});
Florian Mertens
sumber
7
 $('input.myclass[type=checkbox]').each(function () {
   var sThisVal = (this.checked ? $(this).val() : ""); });

Lihat pemilih kelas jQuery .

Liza Daly
sumber
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.

Philip Voloshin
sumber
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);
Caike Bispo
sumber
7

Anda bisa coba seperti ini

let values = (function() {
                let a = [];
                $(".chkboxes:checked").each(function() {
                    a.push($(this).val());
                });
                return a;
            })();
Bablu Ahmed
sumber
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

Debendra Dash
sumber
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

Tony
sumber
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');
        }
    });
});
kapil sarvesh
sumber
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()
KEERTHI KN
sumber
1
tolong jelaskan tentang apa kode ini. Ini akan membantu orang lain untuk mengerti
Shafin Mahmud