jQuery के साथ checkbox के लिए "checked" कैसे सेट करें: शुरुआती लोगों के लिए विस्तृत विवरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

checkbox पागल क्यों हो जाता है? एक बग की कहानी

\n\n

कल्पना करें: आप एक वेबसाइट पर रजिस्ट्रेशन फॉर्म लिख रहे हैं। एक चेकबॉक्स है "मैं शर्तों से सहमत हूं"। उपयोगकर्ता क्लिक करता है — टिक लग जाता है। सब कुछ काम करता है। फिर आप jQuery का उपयोग करके "सभी चुनें" बटन जोड़ने का निर्णय लेते हैं। आप लिखते हैं $('#agree').attr('checked', true) — और... कुछ नहीं होता। या टिक एक बार लगता है, फिर हटना बंद कर देता है। परिचित लगता है?

\n\n

यह प्रश्न Stack Overflow पर सबसे लोकप्रिय प्रश्नों में से एक है। हजारों डेवलपर्स एक ही गलती पर फिसलते हैं। और आज हम समझेंगे कि ऐसा क्यों होता है, और jQuery के साथ checkbox के लिए checked को सही तरीके से कैसे सेट करें।

\n\n

संक्षेप में: समस्या क्या है?

\n\n

समस्या यह है कि कई शुरुआती (और केवल वे ही नहीं) checked विशेषता को नियंत्रित करने के लिए .attr() विधि का उपयोग करते हैं। लेकिन jQuery 1.6 से, सही तरीका .prop() का उपयोग करना है। विशेषता (attribute) और गुण (property) के बीच का अंतर — यह एक महत्वपूर्ण विषय है जिसे हम अब समझाएंगे।

\n\n

विशेषता बनाम गुण: क्या अंतर है?

\n\n

आइए सरल शब्दों में समझें। HTML विशेषता वह है जो आप मार्कअप में लिखते हैं:

\n\n
<input type="checkbox" id="agree" checked>
\n\n

यहाँ checked विशेषता चेकबॉक्स की प्रारंभिक स्थिति निर्धारित करती है। लेकिन जब उपयोगकर्ता क्लिक करता है — DOM तत्व का गुण (property) बदलता है, जबकि विशेषता अपरिवर्तित रहती है।

\n\n

.attr() विधि विशेषताओं के साथ काम करती है, जबकि .prop() गुणों के साथ। और चूंकि हम चेकबॉक्स की वर्तमान स्थिति (जो गतिशील रूप से बदलती है) में रुचि रखते हैं, हमें .prop() की आवश्यकता है।

\n\n

कोड में यह कैसा दिखता है

\n\n

यहाँ एक सरल उदाहरण है जो अंतर दर्शाता है:

\n\n
<!-- HTML -->\n<input type="checkbox" id="myCheckbox">\n<button id="setChecked">टिक लगाएं</button>\n<button id="removeChecked">टिक हटाएं</button>\n\n<script>\n// सही तरीका (jQuery 1.6+)\n$('#setChecked').click(function() {\n    $('#myCheckbox').prop('checked', true);\n});\n\n$('#removeChecked').click(function() {\n    $('#myCheckbox').prop('checked', false);\n});\n</script>
\n\n

ध्यान दें: हम दूसरे तर्क के रूप में true या false — बूलियन मान — पास कर रहे हैं। यह महत्वपूर्ण है।

\n\n

शुरुआती लोगों की सामान्य गलतियाँ (और उनसे कैसे बचें)

\n\n

गलती 1: checked सेट करने के लिए .attr() का उपयोग करना

\n\n
// ❌ गलत\n$('#myCheckbox').attr('checked', true);\n\n// ❌ यह भी गलत\n$('#myCheckbox').attr('checked', 'checked');
\n\n

यह खराब क्यों है? क्योंकि .attr() विशेषता सेट करता है, गुण नहीं। उपयोगकर्ता के पहले क्लिक के बाद, विशेषता रह सकती है, जबकि गुण बदल जाता है। परिणाम — असंगत व्यवहार।

\n\n

गलती 2: बूलियन मान के बजाय स्ट्रिंग पास करना

\n\n
// ❌ गलत\n$('#myCheckbox').prop('checked', 'true'); // स्ट्रिंग, बूलियन नहीं
\n\n

क्या jQuery स्ट्रिंग को बूलियन में बदलता है? कुछ मामलों में — हाँ। लेकिन इस पर निर्भर रहना खराब अभ्यास है। हमेशा बिना उद्धरण के true या false पास करें।

\n\n

गलती 3: स्थिति पढ़ते समय .prop() के बारे में भूल जाना

\n\n
// ❌ गलत\nif ($('#myCheckbox').attr('checked')) { ... }\n\n// ✅ सही\nif ($('#myCheckbox').prop('checked')) { ... }
\n\n

वर्तमान स्थिति पढ़ने के लिए — केवल .prop()।

\n\n

पूर्ण उदाहरण: चेकबॉक्स और नियंत्रण बटन वाला फॉर्म

\n\n

आइए सब कुछ एक साथ रखें। कल्पना करें कि हमारे पास विकल्पों की एक सूची है जिसे उपयोगकर्ता चुन सकता है, और "सभी चुनें" और "सभी हटाएं" बटन हैं।

\n\n
<!DOCTYPE html>\n<html>\n<head>\n    <title>jQuery के साथ चेकबॉक्स प्रबंधन</title>\n    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>\n</head>\n<body>\n    <h3                

ब्लॉग

पुस्तक अनुशंसाएँ