मैं jQuerycheckbox
का उपयोग करने के लिए कुछ इस तरह करना चाहूंगा :
$(".myCheckBox").checked(true);
या
$(".myCheckBox").selected(true);
क्या ऐसी किसी वस्तु का अस्तित्व है?
$("#mycheckbox").click();
मैं jQuerycheckbox
का उपयोग करने के लिए कुछ इस तरह करना चाहूंगा :
$(".myCheckBox").checked(true);
या
$(".myCheckBox").selected(true);
क्या ऐसी किसी वस्तु का अस्तित्व है?
$("#mycheckbox").click();
जवाबों:
उपयोग करें .prop()
:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
यदि आप सिर्फ एक तत्व के साथ काम कर रहे हैं, तो आप हमेशा अंतर्निहित तक पहुँच सकते हैं HTMLInputElement
और इसकी .checked
संपत्ति को संशोधित कर सकते हैं:
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
इसके बजाय .prop()
और .attr()
विधियों का उपयोग करने का लाभ यह है कि वे सभी मिलान तत्वों पर काम करेंगे।
.prop()
विधि ताकि आप उपयोग करने की आवश्यकता, उपलब्ध नहीं है .attr()
।
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
ध्यान दें कि यह संस्करण 1.6 से पहले jQuery के यूनिट परीक्षणों द्वारा उपयोग किया जाता है और $('.myCheckbox').removeAttr('checked');
बाद की इच्छाशक्ति के बाद से उपयोग करने के लिए बेहतर है , अगर बॉक्स की शुरुआत में जाँच की गई थी, तो कॉल के व्यवहार .reset()
को किसी भी रूप में बदल दें जिसमें यह शामिल है - एक सूक्ष्म लेकिन शायद अवांछित व्यवहार परिवर्तन।
अधिक संदर्भ के लिए, checked
1.5.x से 1.6 तक संक्रमण में गुण / संपत्ति की हैंडलिंग के परिवर्तनों की कुछ अधूरी चर्चा संस्करण 1.6 जारी नोटों में और दस्तावेज़ के गुण बनाम गुण अनुभाग में पाई जा सकती है ।.prop()
DOMElement.checked = true
"। लेकिन यह नगण्य होगा, क्योंकि यह केवल एक तत्व है ...
$(element).prop('checked')
करना पूरी तरह से बेकार है। element.checked
मौजूद है और उन मामलों में उपयोग किया जाना चाहिए जहां आपके पास पहले से ही हैelement
उपयोग:
$(".myCheckbox").attr('checked', true); // Deprecated
$(".myCheckbox").prop('checked', true);
और अगर आप चेकबॉक्स चेक करना चाहते हैं या नहीं,
$('.myCheckbox').is(':checked');
के रूप में यह पार मंच मानक है, और यह, जाँच और jQuery के साथ चेक बॉक्स को अनचेक का सही तरीका है जाएगा प्रपत्र reposts अनुमति देते हैं।
$('.myCheckBox').each(function(){ this.checked = true; });
$('.myCheckBox').each(function(){ this.checked = false; });
ऐसा करने से, आप चेकबॉक्स को चेक और अनचेक करने के लिए जावास्क्रिप्ट मानकों का उपयोग कर रहे हैं, इसलिए कोई भी ब्राउज़र जो चेकबॉक्स तत्व की "चेक की गई" संपत्ति को ठीक से लागू करता है, इस कोड को त्रुटिपूर्ण रूप से चलाएगा। यह सभी प्रमुख ब्राउज़र होने चाहिए , लेकिन मैं इंटरनेट एक्सप्लोरर 9 के पिछले परीक्षण में असमर्थ हूं।
समस्या (jQuery 1.6):
एक बार जब कोई उपयोगकर्ता चेकबॉक्स पर क्लिक करता है, तो वह चेकबॉक्स "चेक किए गए" विशेषता परिवर्तनों का जवाब देना बंद कर देता है।
यहां चेकबॉक्स विशेषता का एक उदाहरण है कि कोई व्यक्ति चेकबॉक्स पर क्लिक करने के बाद काम करने में विफल है (यह क्रोम में होता है)।
समाधान:
DOM तत्वों पर JavaScript की "चेक की गई" संपत्ति का उपयोग करके , हम DOM को हेरफेर करने की कोशिश करने के बजाय सीधे समस्या को हल करने में सक्षम हैं जो हम इसे करना चाहते हैं।
यह प्लगइन jQuery द्वारा चुने गए किसी भी तत्व की जाँच की गई संपत्ति को बदल देगा, और सभी परिस्थितियों में सफलतापूर्वक जाँच और चेकबॉक्स को अनचेक कर देगा। तो, जबकि यह एक अति-असर समाधान की तरह लग सकता है, यह आपकी साइट के उपयोगकर्ता के अनुभव को बेहतर बना देगा, और उपयोगकर्ता की हताशा को रोकने में मदद करेगा।
(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 );
वैकल्पिक रूप से, यदि आप एक प्लगइन का उपयोग नहीं करना चाहते हैं, तो आप निम्न कोड स्निपेट का उपयोग कर सकते हैं:
// Check
$(':checkbox').prop('checked', true);
// Un-check
$(':checkbox').prop('checked', false);
// Toggle
$(':checkbox').prop('checked', function (i, value) {
return !value;
});
removeAttr('checked')
बजाय का उपयोग किया जाना चाहिएattr('checked', false)
checked
विशेषता परिवर्तनों के प्रति प्रतिक्रिया नहीं देता है , भले ही उन्हें बदलने के लिए उपयोग की जाने वाली विधि की परवाह किए बिना ।
$('.myCheckBox').prop('checked', true)
इस तरह यह स्वचालित रूप से मिलान किए गए तत्वों के पूरे सेट पर लागू होगा (केवल तब जब सेटिंग, हालांकि, अभी भी केवल पहली है)
prop
किसी तत्व पर विशेषताएँ सेट करने के लिए निश्चित रूप से उपयुक्त तरीका है।
तुम कर सकते हो
$('.myCheckbox').attr('checked',true) //Standards compliant
या
$("form #mycheckbox").attr('checked', true)
यदि आपके पास चेकबॉक्स के लिए ऑनक्लिक ईवेंट में कस्टम कोड है, जिसे आप फायर करना चाहते हैं, तो इसके बजाय इसका उपयोग करें:
$("#mycheckbox").click();
आप पूरी तरह से विशेषता को हटाकर अनचेक कर सकते हैं:
$('.myCheckbox').removeAttr('checked')
आप इस तरह से सभी चेकबॉक्स की जांच कर सकते हैं:
$(".myCheckbox").each(function(){
$("#mycheckbox").click()
});
$(".myCheckbox").click()
.attr
इसके बजाय उपयोग करता है .prop
।
$("#mycheckbox").click();
मेरे लिए काम किया, जैसा कि मैंने परिवर्तन घटना को भी सुन रहा था और .attr
और .prop
आग परिवर्तन घटना नहीं किया।
आप नए तरीकों के साथ $ .fn ऑब्जेक्ट का विस्तार भी कर सकते हैं:
(function($) {
$.fn.extend({
check : function() {
return this.filter(":radio, :checkbox").attr("checked", true);
},
uncheck : function() {
return this.filter(":radio, :checkbox").removeAttr("checked");
}
});
}(jQuery));
तो आप बस कर सकते हैं:
$(":checkbox").check();
$(":checkbox").uncheck();
या यदि आप उन नामों का उपयोग करने वाले कुछ अन्य लाइब्रेरी का उपयोग करते हैं, तो आप उन्हें mycheck () और myuncheck () जैसे अधिक विशिष्ट नाम देना चाह सकते हैं।
.attr
इसके बजाय उपयोग करता है .prop
।
$("#mycheckbox")[0].checked = true;
$("#mycheckbox").attr('checked', true);
$("#mycheckbox").click();
आखिरी चेकबॉक्स के लिए क्लिक इवेंट को फायर करेगा, अन्य नहीं करेंगे। इसलिए यदि आपके पास चेकबॉक्स के लिए ऑनक्लिक ईवेंट में कस्टम कोड है जिसे आप फायर करना चाहते हैं, तो पिछले एक का उपयोग करें।
.attr
इसके बजाय उपयोग करता है .prop
।
click
इवेंट फ़ायरफ़ॉक्स और एज में अविश्वसनीय है।
एक चेकबॉक्स की जांच करने के लिए आपको उपयोग करना चाहिए
$('.myCheckbox').attr('checked',true);
या
$('.myCheckbox').attr('checked','checked');
और चेक बॉक्स को अनचेक करने के लिए आपको हमेशा इसे गलत पर सेट करना चाहिए:
$('.myCheckbox').attr('checked',false);
यदि तुम करो
$('.myCheckbox').removeAttr('checked')
यह सभी को एक साथ हटाता है और इसलिए आप फॉर्म को रीसेट नहीं कर पाएंगे।
बीएड डेमो jQuery 1.6 । मुझे लगता है कि यह टूट गया है। 1.6 के लिए मैं उस पर एक नई पोस्ट बनाने जा रहा हूं।
नया काम करने वाला डेमो jQuery 1.5.2 क्रोम में काम करता है।
दोनों डेमो का उपयोग करते हैं
$('#tc').click(function() {
if ( $('#myCheckbox').attr('checked')) {
$('#myCheckbox').attr('checked', false);
} else {
$('#myCheckbox').attr('checked', 'checked');
}
});
$(".mycheckbox").prop("checked", true/false)
यह मानते हुए कि यह प्रश्न है ...
याद रखें कि एक सामान्य चेकबॉक्स सेट में, सभी इनपुट टैग का एक ही नाम होता है, वे विशेषता से भिन्न होते हैंvalue
हैं: सेट के प्रत्येक इनपुट के लिए कोई आईडी नहीं होती है।
कोड की निम्न पंक्ति का उपयोग करके जियान के उत्तर को और अधिक विशिष्ट चयनकर्ता के साथ बढ़ाया जा सकता है :
$("input.myclass[name='myname'][value='the_value']").prop("checked", true);
मुझे हल याद आ रहा है। मैं हमेशा उपयोग करूँगा:
if ($('#myCheckBox:checked').val() !== undefined)
{
//Checked
}
else
{
//Not checked
}
.val()
हमेशा undefined
0 तत्वों पर कॉल करने पर वापस आएगा जब यह पता लगाने के लिए कि jQuery ऑब्जेक्ट खाली है, जब आप कर सकते हैं इसके .length
बजाय बस इसकी जांच करें ) - अधिक पढ़ने योग्य दृष्टिकोण के लिए stackoverflow.com/questions/901712/… देखें ।
JQuery 1.6 या उच्चतर का उपयोग करके एक चेकबॉक्स की जांच करने के लिए बस ऐसा करें:
checkbox.prop('checked', true);
अनचेक करने के लिए, उपयोग करें:
checkbox.prop('checked', false);
यहाँ मुझे jQuery का उपयोग करके एक चेकबॉक्स को चालू करने के लिए उपयोग करने के लिए क्या पसंद है:
checkbox.prop('checked', !checkbox.prop('checked'));
यदि आप jQuery 1.5 या उससे कम का उपयोग कर रहे हैं :
checkbox.attr('checked', true);
अनचेक करने के लिए, उपयोग करें:
checkbox.attr('checked', false);
यहाँ 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>
यहाँ एक बटन के साथ चेक और अनचेक किया गया कोड है:
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;
});
});
.attr
इसके बजाय उपयोग करता है .prop
।
elementObject
विशेषता की जाँच के लिए हम jQuery के साथ उपयोग कर सकते हैं :
$(objectElement).attr('checked');
हम बिना किसी त्रुटि के सभी jQuery के संस्करणों के लिए इसका उपयोग कर सकते हैं।
अद्यतन: Jquery 1.6+ में नई प्रोप विधि है जो एटर को प्रतिस्थापित करती है, जैसे:
$(objectElement).prop('checked');
.attr
इसके बजाय उपयोग करता है .prop
।
यदि आप PhoneGap एप्लिकेशन विकास का उपयोग कर रहे हैं , और आपके पास बटन पर एक मूल्य है जिसे आप तुरंत दिखाना चाहते हैं, तो यह करना याद रखें
$('span.ui-[controlname]',$('[id]')).text("the value");
मैंने पाया कि स्पैन के बिना, इंटरफ़ेस कोई फर्क नहीं पड़ता कि आप क्या करते हैं।
यहाँ कई चेक बॉक्स की जाँच करने के लिए कोड और डेमो है ...
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;
}
}
});
$("#check")
को कच्चे डोम एपीआई कॉल के साथ मिलाना document.getElementsByTagName("input")
मेरे लिए असंगत लगता है, विशेष रूप से यह देखते हुए कि for
यहां के लूपों का उपयोग करने से बचा जा सकता है .prop()
। भले ही यह एक और देर से उत्तर है कि नया कुछ नहीं जोड़ता है।
एक अन्य संभावित समाधान:
var c = $("#checkboxid");
if (c.is(":checked")) {
$('#checkboxid').prop('checked', false);
} else {
$('#checkboxid').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();
इंटरनेट एक्सप्लोरर 9 से पहले इंटरनेट एक्सप्लोरर में मेमोरी लीक के बारे में पता होना चाहिए , क्योंकि jQuery के प्रलेखन राज्यों में :
संस्करण 9 से पहले के इंटरनेट एक्सप्लोरर में, .प्रॉप () एक साधारण आदिम मूल्य (संख्या, स्ट्रिंग, या बूलियन) के अलावा किसी भी अन्य के लिए एक डोम तत्व संपत्ति सेट करने के लिए स्मृति लीक का कारण बन सकती है यदि संपत्ति को हटाया नहीं जाता है (उपयोग करते हुए ।removeProp। )) डॉम तत्व को दस्तावेज़ से हटाने से पहले। मेमोरी लीक के बिना डोम ऑब्जेक्ट्स पर सुरक्षित रूप से मान सेट करने के लिए, .data () का उपयोग करें।
.prop('checked',true)
।
जाँच और अनचेक करने के लिए
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
$('controlCheckBox').click(function(){
var temp = $(this).prop('checked');
$('controlledCheckBoxes').prop('checked', temp);
});
यह शायद सबसे छोटा और आसान उपाय है:
$(".myCheckBox")[0].checked = true;
या
$(".myCheckBox")[0].checked = false;
इससे भी छोटा होगा:
$(".myCheckBox")[0].checked = !0;
$(".myCheckBox")[0].checked = !1;
यहाँ एक jsFiddle भी है।
सादा जावास्क्रिप्ट बहुत सरल है और बहुत कम ओवरहेड है:
var elements = document.getElementsByClassName('myCheckBox');
for(var i = 0; i < elements.length; i++)
{
elements[i].checked = true;
}
मैं इसका उपयोग कर काम नहीं कर सका:
$("#cb").prop('checked', 'true');
$("#cb").prop('checked', 'false');
सही और गलत दोनों चेकबॉक्स की जाँच करेंगे। मेरे लिए क्या काम था:
$("#cb").prop('checked', 'true'); // For checking
$("#cb").prop('checked', ''); // For unchecking
true
और false
और नहीं 'true'
और 'false'
?
'false'
बूलियन मूल्य में परिवर्तित किया गया था जिसके परिणामस्वरूप true
- खाली स्ट्रिंग false
इस प्रकार "काम" का मूल्यांकन करती है। उदाहरण के लिए इस फील को देखें कि मेरा क्या मतलब है।
जब आपने एक चेकबॉक्स चेक किया;
$('.className').attr('checked', 'checked')
यह पर्याप्त नहीं हो सकता है। आपको नीचे दिए गए फ़ंक्शन को भी कॉल करना चाहिए;
$('.className').prop('checked', 'true')
खासकर जब आपने चेकबॉक्स चेक की गई विशेषता को हटा दिया।
यहाँ jQuery का उपयोग कर पूरा जवाब है
मैं इसका परीक्षण करता हूं और यह 100% काम करता है: डी
// 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
});
JQuery में,
if($("#checkboxId").is(':checked')){
alert("Checked");
}
या
if($("#checkboxId").attr('checked')==true){
alert("Checked");
}
जावास्क्रिप्ट में,
if (document.getElementById("checkboxID").checked){
alert("Checked");
}
.attr
इसके बजाय उपयोग करता है .prop
।