[javascript] JQuery के साथ चेकबॉक्स के लिए "चेक किया गया" सेट करना?



Answers

उपयोग:

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

और यदि आप जांचना चाहते हैं कि चेकबॉक्स चेक किया गया है या नहीं:

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

मैं jQuery का उपयोग कर checkbox करने के लिए ऐसा कुछ करना चाहता हूं:

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

या

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

क्या ऐसी किसी वस्तु का अस्तित्व है?




JQuery में,

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

या

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

जावास्क्रिप्ट में,

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



मान लीजिए कि सवाल है ...

मैं चेकबॉक्स-सेट VALUE द्वारा कैसे सेट करूं?

याद रखें कि एक सामान्य चेकबॉक्स सेट में, सभी इनपुट टैगों का एक ही नाम होता है, वे विशेषता value भिन्न होते हैं: सेट के प्रत्येक इनपुट के लिए कोई आईडी नहीं होती है।

कोड की निम्न पंक्ति का उपयोग करते हुए जियान का उत्तर एक और विशिष्ट चयनकर्ता के साथ बढ़ाया जा सकता है:

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



जैसा कि @ livefree75 ने कहा:

jQuery 1.5.x और नीचे

आप नई विधियों के साथ $ .fn ऑब्जेक्ट भी बढ़ा सकते हैं:

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

लेकिन jQuery के नए संस्करणों में, हमें इस तरह कुछ उपयोग करना होगा:

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

तो आप बस कर सकते हैं:

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



तुम कर सकते हो

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

या

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

यदि आपके पास उस चेकबॉक्स के लिए ऑनक्लिक ईवेंट में कस्टम कोड है जिसे आप आग लगाना चाहते हैं, तो इसके बजाय इसका उपयोग करें:

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

आप पूरी तरह से विशेषता को हटाकर अनचेक कर सकते हैं:

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

आप इस तरह के सभी चेकबॉक्स देख सकते हैं:

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



जब आपने चेकबॉक्स चेक किया था;

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

यह पर्याप्त नहीं हो सकता है। आपको नीचे दिए गए फ़ंक्शन को भी कॉल करना चाहिए;

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

खासकर जब आपने चेकबॉक्स चेक किए गए गुण को हटा दिया।




यह उन तत्वों का चयन करता है जिनमें दिए गए सबस्ट्रिंग वाले मान के साथ निर्दिष्ट विशेषता है:

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

यह उन सभी तत्वों का चयन करेगा जिनमें ckbItem को इसके नाम विशेषता में शामिल किया गया है।




JQuery 1.6+ के लिए

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

JQuery 1.5.x और नीचे के लिए

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

जाँच करने के लिए,

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



एक और संभावित समाधान:

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



यहां एक बटन के साथ चेक और अनचेक करने के लिए कोड है:

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

अद्यतन: यहां नई Jquery 1.6+ प्रोप विधि का उपयोग करके एक ही कोड ब्लॉक है, जो attr को प्रतिस्थापित करता है:

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



यह शायद सबसे छोटा और आसान समाधान है:

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

या

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

यहां तक ​​कि छोटा होगा:

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

यहां एक jsFiddle भी है।




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

आखिरी व्यक्ति चेकबॉक्स के लिए क्लिक इवेंट को फायर करेगा, अन्य लोग नहीं करेंगे। तो यदि आपके पास उस चेकबॉक्स के लिए ऑनक्लिक ईवेंट में कस्टम कोड है जिसे आप आग लगाना चाहते हैं, तो अंतिम का उपयोग करें।




JQuery के बिना ऐसा करने का एक तरीका यहां है

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>




हम गुण की जांच के लिए jQuery के साथ elementObject उपयोग कर सकते हैं:

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

हम बिना किसी त्रुटि के सभी jQuery संस्करणों के लिए इसका उपयोग कर सकते हैं।

अद्यतन: Jquery 1.6+ में नई प्रोप विधि है जो attr को प्रतिस्थापित करती है, उदाहरण के लिए:

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



जांचने और अनचेक करने के लिए

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



Related