प्रोप विधि की शुरुआत के साथ, अब मुझे चेकबॉक्स को अनचेक करने के स्वीकृत तरीके को जानना होगा। क्या यह:
$('input').filter(':checkbox').removeAttr('checked');
या
$('input').filter(':checkbox').prop('checked',false);
प्रोप विधि की शुरुआत के साथ, अब मुझे चेकबॉक्स को अनचेक करने के स्वीकृत तरीके को जानना होगा। क्या यह:
$('input').filter(':checkbox').removeAttr('checked');
या
$('input').filter(':checkbox').prop('checked',false);
जवाबों:
jQuery 3
JQuery 3 के अनुसार, अब और संबंधित संपत्ति सेट नहींremoveAttr करता है :false
JQuery 3.0 करने से पहले, का उपयोग करते हुए
.removeAttr()एक बूलियन विशेषता पर जैसेchecked,selected, याreadonlyभी करने के लिए इसी नामित गुण सेट हैंfalse। यह व्यवहार इंटरनेट एक्सप्लोरर के प्राचीन संस्करणों के लिए आवश्यक था लेकिन आधुनिक ब्राउज़रों के लिए सही नहीं है क्योंकि विशेषता प्रारंभिक मूल्य का प्रतिनिधित्व करती है और संपत्ति वर्तमान (गतिशील) मूल्य का प्रतिनिधित्व करती है।यह लगभग हमेशा
.removeAttr( "checked" )एक DOM तत्व पर उपयोग करने के लिए एक गलती है । यह केवल उसी समय उपयोगी हो सकता है जब DOM बाद में HTML स्ट्रिंग में वापस धारावाहिक होने जा रहा हो। अन्य सभी मामलों में,.prop( "checked", false )इसके बजाय उपयोग किया जाना चाहिए।
इसलिए .prop('checked',false)इस संस्करण का उपयोग करते समय केवल सही तरीका है।
मूल उत्तर (2011 से):
उन विशेषताओं के लिए जिनमें अंतर्निहित बूलियन गुण हैं (जिनमें checkedसे एक है), removeAttrस्वचालित रूप से अंतर्निहित संपत्ति को सेट करता है false। (ध्यान दें कि यह jQuery 1.6.1 में जोड़ा गया "पश्च" संगतता के बीच है।)
तो, या तो काम करेगा ... लेकिन आपने जो दूसरा उदाहरण दिया (उपयोग करना prop) दोनों में से अधिक सही है। यदि आपका लक्ष्य चेकबॉक्स को अनचेक करना है, तो आप वास्तव में संपत्ति को प्रभावित करना चाहते हैं , विशेषता को नहीं, और ऐसा करने के लिए कुछ भी करने की आवश्यकता नहीं removeAttrहै।
removeProp() चेक किए गए, अक्षम या चयनित जैसे देशी गुणों को हटाने के लिए [ ] का उपयोग न करें । यह संपत्ति को पूरी तरह से हटा देगा और एक बार हटाए जाने के बाद, फिर से तत्व में नहीं जोड़ा जा सकता है। .prop()इन गुणों को झूठे में सेट करने के लिए उपयोग करें। बजाय।" removePropवास्तव में केवल कस्टम गुणों के साथ उपयोग के लिए अभिप्रेत है।
उपयोग checked: चेकबॉक्स की सच्ची, झूठी संपत्ति।
jQuery:
if($('input[type=checkbox]').is(':checked')) {
$(this).prop('checked',true);
} else {
$(this).prop('checked',false);
}
मैं दोनों का उपयोग करने की सलाह देता हूं, प्रोप और एट्री क्योंकि मुझे क्रोम के साथ समस्या थी और मैंने इसे दोनों कार्यों का उपयोग करके हल किया।
if ($(':checkbox').is(':checked')){
$(':checkbox').prop('checked', true).attr('checked', 'checked');
}
else {
$(':checkbox').prop('checked', false).removeAttr('checked');
}
$("input[type='checkbox'], input[type='radio']").prop("checked", false).attr("checked", false).removeAttr("checked");
एक ही काम करने के लिए एक अन्य विकल्प प्रकार = चेकबॉक्स विशेषता पर फ़िल्टर करना है :
$('input[type="checkbox"]').removeAttr('checked');
या
$('input[type="checkbox"]').prop('checked' , false);
विशेष परिस्थितियों में विशेषताओं और गुणों के बीच अंतर महत्वपूर्ण हो सकता है। JQuery 1.6 से पहले , .attr () विधि कभी-कभी कुछ विशेषताओं को पुनर्प्राप्त करते समय संपत्ति मूल्यों को ध्यान में रखती है, जिससे असंगत व्यवहार हो सकता है। JQuery 1.6 के रूप में, .prop () विधि संपत्ति के मूल्यों को स्पष्ट रूप से पुनर्प्राप्त करने का एक तरीका प्रदान करती है, जबकि .attr () विशेषताओं को पुनः प्राप्त करती है।
आगे जानिए ...