JQuery içeren bir onay kutusu için "işaretlendi" ayarı


4129

checkboxKullanarak bir jQuery işaretlemek için böyle bir şey yapmak istiyorum :

$(".myCheckBox").checked(true);

veya

$(".myCheckBox").selected(true);

Böyle bir şey var mı?


Daha spesifik (ve çok yararlı!) Bir soru, "DEĞER TARAFINDAN ayarlanmış bir onay kutusundaki bir öğeyi nasıl kontrol edebilirim?"
Peter Krauss

JQuery here kullanarak bunu yapmanın diğer yollarını kontrol edin stackoverflow.com/a/22019103/1868660
Subodh Ghulaxe

Tetiklenen onchange olayına ihtiyacınız varsa, bu$("#mycheckbox").click();
HumanInDisguise

"Bir şeyi kontrol etmek" test etmeyi önerir, bu yüzden 'Bir onay kutusunu kontrol ettirmek' daha açık ve daha iyi bir başlık olduğunu düşünüyorum.
Alireza

) (prop; işlevi mükemmel cevaptır. İşlev tanımına bakın - api.jquery.com/prop
yogihosting

Yanıtlar:


5969

Modern jQuery

Kullanım .prop():

$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);

DOM API'sı

Yalnızca bir öğeyle çalışıyorsanız, altta yatan öğeye her zaman erişebilir HTMLInputElementve .checkedözelliğini değiştirebilirsiniz :

$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;

Bunun yerine .prop()ve .attr()yöntemlerini kullanmanın yararı, eşleşen tüm öğeler üzerinde çalışacaklarıdır.

jQuery 1.5.x ve altı

.prop()Kullanmak gerek yüzden yöntem mevcut değildir .attr().

$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);

Bu olduğunu Not jQuery'nin birimi tarafından kullanılan yaklaşım sürüm 1.6 öncesinde test ve kullanmaktan daha iyidir $('.myCheckbox').removeAttr('checked');kutu başlangıçta kontrol edildi eğer ikincisi irade beri, yapılan çağrının davranışı değiştirmek .reset()bunu içeren herhangi formdaki - muhtemelen ince ama istenmeyen davranış değişikliği.

Daha fazla bağlam için, checked1.5.x'ten 1.6'ya geçişte özniteliğin / özelliğin işlenmesindeki değişikliklerle ilgili bazı eksik tartışmalar , sürüm 1.6 sürüm notlarında ve belgelerin Nitelikler ile Özellikler bölümünde bulunabilir ..prop()


26
@Xian, işaretlenen özniteliğin kaldırılması formun sıfırlanmasını imkansız hale getirir
mcgrailm

6
Bir yan not olarak, jQuery 1.6.1 bahsettiğim sorunu düzeltiyor olmalı, bu yüzden tehcnically hepimiz $ (...) kullanmaya devam edebiliriz. Prop (...)
cwharris

19
"Sadece bir elemanla çalışıyorsanız, her zaman kullanımı en hızlı olacaktır DOMElement.checked = true". Ama ihmal edilebilir, çünkü bu sadece bir element ...
Tyler Crompton

46
Tyler'ın dediği gibi, performansta ihmal edilebilir bir gelişme. Bana göre, ortak bir API kullanarak kodlama, onu yerel API ve jQuery API'lerini karıştırmaktan daha okunabilir hale getirir. JQuery ile yapışırdım.
Charlie Kilian

18
@TylerCrompton - Tabii ki, tamamen performansla ilgili değil, yapmak $(element).prop('checked')tam bir yazım kaybıdır. element.checkedzaten var olan durumlarda kullanılmalıdırelement
gnarf

704

kullanın:

$(".myCheckbox").attr('checked', true); // Deprecated
$(".myCheckbox").prop('checked', true);

Ve bir onay kutusunun işaretli olup olmadığını kontrol etmek istiyorsanız:

$('.myCheckbox').is(':checked');

4
ayrıca $ (selector). kontrol etmek için kontrol edilir
eomeroff

6
Bu tam kodu denedim ve tüm seçin / hiçbiri seçin onay kutusunu işaretlemek ve tüm işaretlerini kaldırmak yanı sıra durumunu kontrol etmek için benim için çalışmadı. Bunun yerine @Cristopher Harris'in cevabını denedim ve bu hile yaptı.
JD Smith

Neden sadece "#mycheckbox" yerine "form #mycheckbox" kullanıyorsunuz? Kimlik zaten tüm belgede benzersizdir, doğrudan seçmek daha hızlı ve daha kolaydır.
YuriAlbuquerque

@YuriAlbuquerque bir örnekti. istediğiniz seçiciyi kullanabilirsiniz.
bchhun

5
$ (selector) .checked çalışmıyor. JQuery'de 'kontrol' yöntemi yoktur.
Brendan Byrd

318

Bu, çapraz platform standardı olduğundan ve form yeniden göndermelerine izin vereceğinden , jQuery ile onay kutularını kontrol etmenin ve işaretlemenin doğru yoludur .

$('.myCheckBox').each(function(){ this.checked = true; });

$('.myCheckBox').each(function(){ this.checked = false; });

Bunu yaparak, onay kutularını kontrol etmek ve işaretlerini kaldırmak için JavaScript standartlarını kullanıyorsunuz, bu nedenle onay kutusu öğesinin "işaretli" özelliğini düzgün bir şekilde uygulayan tüm tarayıcılar bu kodu kusursuz bir şekilde çalıştıracaktır. Bu tüm büyük tarayıcılar olmalıdır , ancak Internet Explorer 9'dan önce test yapamıyorum.

Sorun (jQuery 1.6):

Kullanıcı bir onay kutusunu tıkladığında, bu onay kutusu "işaretli" özellik değişikliklerine yanıt vermeyi durdurur.

Birisi onay kutusunu tıkladıktan sonra işi yapamayan onay kutusu özniteliğine bir örnek (bu Chrome'da olur).

Vaktini boşa harcamak

Çözüm:

DOM öğelerinde JavaScript'in "işaretli" özelliğini kullanarak, DOM'u yapmasını istediğimiz şeyi yapmaya yönlendirmek yerine sorunu doğrudan çözebiliriz .

Vaktini boşa harcamak

Bu eklenti, jQuery tarafından seçilen öğelerin işaretli özelliğini değiştirecek ve her durumda onay kutularını başarıyla işaretleyip işaretlerini kaldıracaktır. Bu nedenle, bu aşırı bir çözüm gibi görünse de, sitenizin kullanıcı deneyimini daha iyi hale getirecek ve kullanıcının hayal kırıklığını önlemeye yardımcı olacaktır.

(function( $ ) {
    $.fn.checked = function(value) {
        if(value === true || value === false) {
            // Set the value of the checkbox
            $(this).each(function(){ this.checked = value; });
        } 
        else if(value === undefined || value === 'toggle') {
            // Toggle the checkbox
            $(this).each(function(){ this.checked = !this.checked; });
        }

        return this;
    };
})( jQuery );

Alternatif olarak, bir eklenti kullanmak istemiyorsanız, aşağıdaki kod parçacıklarını kullanabilirsiniz:

// Check
$(':checkbox').prop('checked', true);

// Un-check
$(':checkbox').prop('checked', false);

// Toggle
$(':checkbox').prop('checked', function (i, value) {
    return !value;
});

5
İlk JSFiddle örneğinizde bunun removeAttr('checked')yerine kullanmanız gerekirattr('checked', false)
Daniel X Moore

4
@DanielXMoore, konunun etrafında süpürüyorsun. Örnek, kullanıcı tarafından onay kutusuna tıklandığında, tarayıcıyı değiştirmek için kullanılan yönteme bakılmaksızın artık checkedöznitelik değişikliklerine yanıt vermediğini göstermekti .
cwharris

3
@ChristopherHarris Tamam, haklısın, bunu kaçırdım. JQuery 1.6'dan itibaren .prop yöntemini kullanmamalısınız? $('.myCheckBox').prop('checked', true)Bu şekilde, otomatik olarak eşleşen tüm öğelere uygulanır (yalnızca ayar yaparken, alma işlemi yalnızca ilk
Daniel X Moore

Evet. propbir öğeye nitelikler ayarlamak için kesinlikle uygun yoldur.
cwharris

@ChristopherHarris, bazı parametre esnekliğine izin vermek için eklentiye ihtiyacım olanı ekledim. Bu, tür dönüşümü olmadan satır içi işlemeyi kolaylaştırdı. Farklı veri tabanlarından Esp "doğru" ne olduğu hakkında 'fikirler' ile. Keman: jsfiddle.net/Cyberjetx/vcp96
Joe Johnston

147

Yapabilirsin

$('.myCheckbox').attr('checked',true) //Standards compliant

veya

$("form #mycheckbox").attr('checked', true)

Ateşlemek istediğiniz onay kutusunun onclick olayında özel kodunuz varsa, bunun yerine bunu kullanın:

$("#mycheckbox").click();

Özelliği tamamen kaldırarak işaretini kaldırabilirsiniz:

$('.myCheckbox').removeAttr('checked')

Bunun gibi tüm onay kutularını işaretleyebilirsiniz:

$(".myCheckbox").each(function(){
    $("#mycheckbox").click()
});

ayrıca $ ("# myTable input: checkbox"). her biri (...);
Chris Brandsma

Ayrıca gidebilirsiniz$(".myCheckbox").click()
RobertPitt

3
@Michah, kontrol edilen özniteliğin kaldırılması, formun sıfırlanmasını imkansız hale getirir
mcgrailm

12
Bu cevap güncel değil çünkü .attryerine kullanıyor .prop.
Blazemonger

$("#mycheckbox").click();Ben de olayı değiştirmek için dinlerken benim için çalıştı ve .attr& .propdeğişiklik olayı ateş vermedi.
Damodar Bashyal

80

$ .Fn nesnesini yeni yöntemlerle de genişletebilirsiniz:

(function($)  {
   $.fn.extend({
      check : function()  {
         return this.filter(":radio, :checkbox").attr("checked", true);
      },
      uncheck : function()  {
         return this.filter(":radio, :checkbox").removeAttr("checked");
      }
   });
}(jQuery));

Sonra sadece şunları yapabilirsiniz:

$(":checkbox").check();
$(":checkbox").uncheck();

Veya bu adları kullanan başka bir kitaplık kullanmanız durumunda onlara mycheck () ve myuncheck () gibi daha benzersiz adlar vermek isteyebilirsiniz.


5
@ livfree75 işaretli özniteliğin kaldırılması formu sıfırlamayı imkansız hale getirir
mcgrailm

5
Bu cevap güncel değil çünkü .attryerine kullanıyor .prop.
Blazemonger

64
$("#mycheckbox")[0].checked = true;
$("#mycheckbox").attr('checked', true);
$("#mycheckbox").click();

Sonuncusu onay kutusunun tıklama etkinliğini başlatır, diğerleri yapmaz. Dolayısıyla, tetiklemek istediğiniz onay kutusunun onclick olayında özel kodunuz varsa, sonuncuyu kullanın.


4
ilk başarısız olur ... kontrol jquery nesne üyesi değil
redsquare

5
Bu cevap güncel değil çünkü .attryerine kullanıyor .prop.
Blazemonger

IMO clicketkinliği Firefox ve Edge'de güvenilmez.
Vahid Amiri

62

Bir onay kutusunu işaretlemek için kullanmalısınız

 $('.myCheckbox').attr('checked',true);

veya

 $('.myCheckbox').attr('checked','checked');

ve bir onay kutusunun işaretini kaldırmak için her zaman false olarak ayarlamanız gerekir:

 $('.myCheckbox').attr('checked',false);

Yaparsan

  $('.myCheckbox').removeAttr('checked')

özniteliği birlikte kaldırır ve bu nedenle formu sıfırlayamazsınız.

KÖTÜ DEMO jQuery 1.6 . Bence bu kırık. 1.6 için bu konuda yeni bir yazı yapacağım.

YENİ ÇALIŞMA DEMO jQuery 1.5.2 , Chrome'da çalışır.

Her iki demo kullanımı

$('#tc').click(function() {
    if ( $('#myCheckbox').attr('checked')) {
        $('#myCheckbox').attr('checked', false);
    } else {
        $('#myCheckbox').attr('checked', 'checked');
    }
});

1
Bu yanlış. '' ile 'işaretli' özelliğini edecek ayarı değil en azından krom işaretini onay kutularını.
cwharris

@xixonia Kemanınızı yayınlamadan önce test yaptım çünkü soldaki menüyü
jquery'yi

1
mcgralim - 1.6'da daha da kolay .... $(".mycheckbox").prop("checked", true/false)
gnarf

2
@MarkAmery, yazımın yayın sırasında hiçbir şey eklemediğini söylemiştiniz, ancak bu doğru. Kabul edilen cevabın geçmişine bakarsanız, öğeyi kaldırmanızı öneririz. Bu, formu sıfırlamayı imkansız hale getiriyor, bu yüzden başlamak için gönderdim.
mcgrailm

1
@mcgrailm İlerledim ve kabul ettiğiniz yanıtı yorumlarınız ışığında değiştirdim. Göz atmak ve mevcut durumunda iyi göründüğünü kontrol etmek isterseniz, bunu takdir ediyorum. En azından kısmen çok yanlış yönlendirilmiş keskin eleştiriler sunduğum için tekrar özür dilerim.
Mark Amery

51

Bu, belirtilen alt dizeyi "ckbItem" içeren bir değere sahip belirtilen özniteliğe sahip öğeleri seçer:

$('input[name *= ckbItem]').prop('checked', true);

Name özniteliğinde ckbItem içeren tüm öğeleri seçer.


46

Sorunun ...

VALUE TARAFINDAN ayarlanmış bir onay kutusunu nasıl kontrol ederim ?

Tipik bir onay kutusu kümesinde, tüm giriş etiketlerinin aynı ada sahip olduğunu, özelliklerine göre farklılık gösterdiğini unutmayınvalue : kümenin her girişi için kimlik yoktur.

Xian'ın cevabı , aşağıdaki kod satırı kullanılarak daha spesifik bir seçiciyle genişletilebilir :

$("input.myclass[name='myname'][value='the_value']").prop("checked", true);

45

Çözümü özlüyorum. Her zaman kullanacağım:

if ($('#myCheckBox:checked').val() !== undefined)
{
    //Checked
}
else
{
    //Not checked
}

3
Bu soruya cevap vermez (soru, bir onay kutusunun işaretli olup olmadığını ayarlamakla ilgilidir, bir onay kutusunun işaretli olup olmadığını belirlemektir). Ayrıca, onay kutusunun işaretli olup olmadığını belirlemenin oldukça çirkin bir yoludur (bir şey için, bir jQuery nesnesinin boş olduğunu, ne zaman yapabileceğinizi tespit etmek için 0 öğeye çağrıldığında .val()her zaman geri dönecek olan açık olmayan gerçeği undefinedkullanırsınız. basitçe onun .lengthyerine bakın) - daha okunabilir yaklaşımlar için stackoverflow.com/questions/901712/… adresine bakın .
Mark Amery

42

JQuery 1.6 veya üstünü kullanarak bir onay kutusunu işaretlemek için şunu yapmanız yeterlidir:

checkbox.prop('checked', true);

Seçimi kaldırmak için şunu kullanın:

checkbox.prop('checked', false);

İşte jQuery kullanarak bir onay kutusunu değiştirmek için kullanmak istiyorum:

checkbox.prop('checked', !checkbox.prop('checked'));

JQuery 1.5 veya daha düşük bir sürümünü kullanıyorsanız :

checkbox.attr('checked', true);

Seçimi kaldırmak için şunu kullanın:

checkbox.attr('checked', false);

37

İşte bunu jQuery olmadan yapmanın bir yolu

function addOrAttachListener(el, type, listener, useCapture) {
  if (el.addEventListener) {
    el.addEventListener(type, listener, useCapture);
  } else if (el.attachEvent) {
    el.attachEvent("on" + type, listener);
  }
};

addOrAttachListener(window, "load", function() {
  var cbElem = document.getElementById("cb");
  var rcbElem = document.getElementById("rcb");
  addOrAttachListener(cbElem, "click", function() {
    rcbElem.checked = cbElem.checked;
  }, false);
}, false);
<label>Click Me!
  <input id="cb" type="checkbox" />
</label>
<label>Reflection:
  <input id="rcb" type="checkbox" />
</label>


31

İşte bir düğme ile işaretlenmiş ve işaretlenmemiş kod:

var set=1;
var unset=0;
jQuery( function() {
    $( '.checkAll' ).live('click', function() {
        $( '.cb-element' ).each(function () {
            if(set==1){ $( '.cb-element' ).attr('checked', true) unset=0; }
            if(set==0){ $( '.cb-element' ).attr('checked', false); unset=1; }
        });
        set=unset;
    });
});

Güncelleme: İşte attr yerine yeni Jquery 1.6+ prop yöntemini kullanan aynı kod bloğu:

var set=1;
var unset=0;
jQuery( function() {
    $( '.checkAll' ).live('click', function() {
        $( '.cb-element' ).each(function () {
            if(set==1){ $( '.cb-element' ).prop('checked', true) unset=0; }
            if(set==0){ $( '.cb-element' ).prop('checked', false); unset=1; }
        });
        set=unset;
    });
});

4
Bu cevap güncel değil çünkü .attryerine kullanıyor .prop.
Blazemonger

30

Bunu dene:

$('#checkboxid').get(0).checked = true;  //For checking

$('#checkboxid').get(0).checked = false; //For unchecking

29

elementObjectJQuery ile özniteliğin kontrol edilmesini sağlayabiliriz :

$(objectElement).attr('checked');

Bunu tüm jQuery sürümleri için hatasız olarak kullanabiliriz.

Güncelleme: Jquery 1.6+, attr yerine kullanılan yeni prop yöntemine sahiptir, örneğin:

$(objectElement).prop('checked');

2
Bu cevap güncel değil çünkü .attryerine kullanıyor .prop.
Blazemonger

25

PhoneGap'i uygulama geliştirme yaparken kullanıyorsanız ve düğmede anında göstermek istediğiniz bir değeriniz varsa, bunu yapmayı unutmayın

$('span.ui-[controlname]',$('[id]')).text("the value");

Açıklık olmadan, ne yaparsanız yapın arayüzün güncellenmeyeceğini buldum.


25

Birden fazla onay kutusunu işaretlemek için kod ve demo İşte ...

http://jsfiddle.net/tamilmani/z8TTt/

$("#check").on("click", function () {

    var chk = document.getElementById('check').checked;
    var arr = document.getElementsByTagName("input");

    if (chk) {
        for (var i in arr) {
            if (arr[i].name == 'check') arr[i].checked = true;
        }
    } else {
        for (var i in arr) {
            if (arr[i].name == 'check') arr[i].checked = false;
        }
    }
});

- 1; jQuery seçicilerini $("#check")ham DOM API çağrılarıyla karıştırmak document.getElementsByTagName("input")benim için yetersiz görünüyor, özellikle de buradaki fordöngülerin kullanılarak önlenebileceği göz önüne alındığında .prop(). Ne olursa olsun bu yeni bir şey katmayan başka bir geç cevaptır.
Mark Amery

20

Başka bir olası çözüm:

    var c = $("#checkboxid");
    if (c.is(":checked")) {
         $('#checkboxid').prop('checked', false);
    } else {
         $('#checkboxid').prop('checked', true);
    }

19

@ Livefree75'in dediği gibi:

jQuery 1.5.x ve altı

$ .Fn nesnesini yeni yöntemlerle de genişletebilirsiniz:

(function($)  {
   $.fn.extend({
      check : function()  {
         return this.filter(":radio, :checkbox").attr("checked", true);
      },
      uncheck : function()  {
         return this.filter(":radio, :checkbox").removeAttr("checked");
      }
   });
}(jQuery));

Ancak jQuery'nin yeni sürümlerinde böyle bir şey kullanmalıyız:

jQuery 1.6+

    (function($)  {
       $.fn.extend({
          check : function()  {
             return this.filter(":radio, :checkbox").prop("checked", true);
          },
          uncheck : function()  {
             return this.filter(":radio, :checkbox").prop("checked",false);
          }
       });
    }(jQuery));

Sonra sadece şunları yapabilirsiniz:

    $(":checkbox").check();
    $(":checkbox").uncheck();

18

Mobil cihaz kullanıyorsanız ve arayüzün onay kutusunu işaretlenmemiş olarak güncellemesini ve göstermesini istiyorsanız, aşağıdakileri kullanın:

$("#checkbox1").prop('checked', false).checkboxradio("refresh");

18

JQuery belgelerinde belirtildiği gibi, Internet Explorer 9'dan önce Internet Explorer'daki bellek sızıntılarına dikkat edin :

Sürüm 9'dan önceki Internet Explorer'da, bir DOM öğesi özelliğini basit bir temel değerden (sayı, dize veya boole) başka bir değere ayarlamak için .prop () kullanılması, özellik kaldırılmazsa (.removeProp (kullanılarak) bellek sızıntılarına neden olabilir. )) DOM öğesi belgeden kaldırılmadan önce. Bellek sızıntısı olmadan DOM nesnelerinde değerleri güvenli bir şekilde ayarlamak için .data () kullanın.


2
Tüm bu (doğru) cevaplar kullandığından, bu önemsizdir .prop('checked',true).
Blazemonger

Yorumunuzu anladığımdan emin değilim. Bu hala jQuery belgelerinde mevcuttur. IE 9'da bellek sızıntısı olmadığını mı ima ediyorsunuz?
naor

2
Biz bu yana bu durumda hiçbir bellek sızıntısı yoktur edilir basit ilkel değere (Boolean) olarak ayarlamayı.
Blazemonger

18

JQuery 1.6+ için

$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);

JQuery 1.5.x ve altı için

$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);

Kontrol etmek,

$('.myCheckbox').removeAttr('checked');

17

Kontrol etmek ve işaretini kaldırmak için

$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);

3
- 1; bu zaten şişirilmiş bir iş parçacığına hiçbir değer katmaz. Buradaki kod, kabul edilen cevapla tamamen aynıdır.
Mark Amery

16
$('controlCheckBox').click(function(){
    var temp = $(this).prop('checked');
    $('controlledCheckBoxes').prop('checked', temp);
});

4
- 1 yalnızca kodlu bir yanıt olduğu, soruyu doğrudan yanıtlamadığı ve diğer yanıtların daha önce ele almadığı hiçbir şey eklemediği için.
Mark Amery

15

Bu muhtemelen en kısa ve en kolay çözümdür:

$(".myCheckBox")[0].checked = true;

veya

$(".myCheckBox")[0].checked = false;

Daha da kısa:

$(".myCheckBox")[0].checked = !0;
$(".myCheckBox")[0].checked = !1;

İşte bir de jsFiddle .


14

Sade JavaScript çok basit ve çok daha az genel gider:

var elements = document.getElementsByClassName('myCheckBox');
for(var i = 0; i < elements.length; i++)
{
    elements[i].checked = true;
}

Burada örnek


@MarkAmery Kabul edilen cevap, jQuery olmadan nasıl yapılacağını kapsamaz. Cevabım kabul edilen cevaba ek fayda sağlıyor.
Alex W

13

Bunu kullanarak çalıştıramadım:

$("#cb").prop('checked', 'true');
$("#cb").prop('checked', 'false');

Hem doğru hem de yanlış onay kutusunu işaretler. Benim için işe yarayan şuydu:

$("#cb").prop('checked', 'true'); // For checking
$("#cb").prop('checked', '');     // For unchecking

16
o olmamalı trueve falsedeğildir 'true've 'false'?
tpower

9
Bu "işe yaramadı" çünkü 'false'boolean değerine dönüştürüldü true- sonuç olarak - boş dize falseböylece "çalıştı" olarak değerlendirir. Bkz bu keman Demek istediğim de örneğin.
Gölge Sihirbazı Sizin İçin

@ chris97ong Düzenlemenizi geri aldım; Birisi "Aşağıdaki kodu çalışmadığı için kullanma" dediğinde, bu kodun çalışmadığını söyleyerek yorumdan çıkarken düzeltilmesi zararlıdır - özellikle de kodun neden olmadığına dair açıklamalarda açıklamayı kırdığında çalışmıyor. Bununla birlikte, bu cevap hala biraz karışık ve tpower ve ShadowWizard'ın nedenlerinden dolayı bir aşağı oyu hak ediyor.
Mark Amery

1
boole için true ve false değerleri kullanın, 'true' veya 'false' (dizeler) kullanmayın.
Jone Polvora

13

Gibi bir onay kutusunu işaretlediğinizde;

$('.className').attr('checked', 'checked')

bu yeterli olmayabilir. Ayrıca aşağıdaki işlevi çağırmalısınız;

$('.className').prop('checked', 'true')

Özellikle onay kutusu işaretli niteliğini kaldırdığınızda.


11

İşte tam cevap jQuery kullanarak

Test ediyorum ve% 100 çalışıyor: D

    // when the button (select_unit_button) is clicked it returns all the checed checkboxes values 
    $("#select_unit_button").on("click", function(e){

             var arr = [];

             $(':checkbox:checked').each(function(i){
                 arr[i] = $(this).val(); // u can get id or anything else
             });

              //console.log(arr); // u can test it using this in google chrome
    });

10

JQuery'de,

if($("#checkboxId").is(':checked')){
    alert("Checked");
}

veya

if($("#checkboxId").attr('checked')==true){
    alert("Checked");
}

JavaScript'te,

if (document.getElementById("checkboxID").checked){
    alert("Checked");
}

7
Bu soruya cevap vermiyor.
Samuel Liew

2
Bu cevap güncel değil çünkü .attryerine kullanıyor .prop.
Blazemonger
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.