HTML चेकबॉक्स के चेक किए गए विशेषता के लिए उचित मूल्य क्या है?


436

हम सभी जानते हैं कि HTML में एक चेकबॉक्स इनपुट कैसे बनाया जाता है:

<input name="checkbox_name" id="checkbox_id" type="checkbox">

मैं क्या नहीं जानता - एक चेकबॉक्स के लिए तकनीकी रूप से सही मूल्य क्या है? मैंने ये सारे काम देखे हैं:

<input name="checkbox_name" id="checkbox_id" type="checkbox" checked>
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="on">
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="yes">
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="checked">
    <input name="checkbox_name" id="checkbox_id" type="checkbox" checked="true">

जवाब है कि यह कोई फर्क नहीं पड़ता? मुझे उत्तर के लिए कोई सबूत नहीं दिख रहा है जो कि यहाँ पर युक्ति से ही सही है:

चेकबॉक्स (और रेडियो बटन) स्विच / ऑन हैं जो उपयोगकर्ता द्वारा चालू किए जा सकते हैं। एक स्विच "चालू" होता है जब नियंत्रण तत्व की जाँच की विशेषता सेट की जाती है। जब कोई फ़ॉर्म सबमिट किया जाता है, तो केवल "ऑन" चेकबॉक्स नियंत्रण सफल हो सकते हैं। प्रपत्र में कई चेकबॉक्स समान नियंत्रण नाम साझा कर सकते हैं। इस प्रकार, उदाहरण के लिए, चेकबॉक्स उपयोगकर्ताओं को एक ही संपत्ति के लिए कई मानों का चयन करने की अनुमति देता है। INPUT तत्व का उपयोग चेकबॉक्स नियंत्रण बनाने के लिए किया जाता है।

एक कल्पना लेखक क्या कहेगा सही उत्तर है? कृपया साक्ष्य-आधारित उत्तर प्रदान करें।


आपके प्रश्न सारांश में आप चेक किए गए विशेषता के लिए मूल्य का उल्लेख करते हैं, हालांकि प्रश्न विवरण में आप चेक किए गए चेकबॉक्स के सही मूल्य पर चर्चा करते हैं। चेकबॉक्स का "मान" चेक की गई विशेषता से भिन्न होता है, मुझे विश्वास है कि आपके प्रश्न विवरण में आपके पास भी विशेषता का मूल्य है, शायद आप प्रश्न विवरण को समायोजित करना चाहते हैं। एक चेकबॉक्स समीक्षा के "मूल्य" के लिए stackoverflow.com/questions/14323899/…
melutovich

जवाबों:


451

कड़ाई से बोलते हुए, आपको कुछ ऐसा करना चाहिए जो समझ में आए - यहां कल्पना के अनुसार , सबसे सही संस्करण है:

<input name=name id=id type=checkbox checked=checked>

एचटीएमएल के लिए, आप भी उपयोग कर सकते हैं खाली विशेषता वाक्य रचना , checked=""या यहाँ तक कि बस checked(सख्त XHTML के लिए, यह है समर्थित नहीं )।

प्रभावी रूप से, हालांकि, अधिकांश ब्राउज़र उद्धरणों के बीच किसी भी मूल्य के बारे में समर्थन करेंगे। निम्नलिखित सभी की जाँच की जाएगी:

<input name=name id=id type=checkbox checked>
<input name=name id=id type=checkbox checked="">
<input name=name id=id type=checkbox checked="yes">
<input name=name id=id type=checkbox checked="blue">
<input name=name id=id type=checkbox checked="false">

और केवल निम्नलिखित अनियंत्रित होंगे:

<input name=name id=id type=checkbox>

इस तरह के सवाल पर भी देखें disabled="disabled"


39
ये गलत है। यदि आप युक्ति को देखते हैं , तो यह कहता है: checked (checked)जिसका अर्थ है "चेक की गई विशेषता का मान 'चेक' हो सकता है))। केवल checkedएक स्वीकार्य मूल्य है, दूसरों में से कोई भी नहीं हैं। बूलियन विशेषताएँ आपको मूल्य को छोड़कर सब कुछ छोड़ देने की अनुमति देती हैं ताकि checkedस्वीकार्य हो। साथ ही checked="checked"
क्वेंटिन

14
एक एचटीएमएल 5 केंद्रित डब्ल्यू 3 पेज का कहना है कि checked, checked="", और checked="checked"ठीक हैं। w3.org/TR/html-markup/input.checkbox.html
रयान विलियम्स

1
@ क्वेंटिन मैं माफी माँगता हूँ, यह वाक्य मेरे लिए मायने नहीं रखता है। क्या आपका मतलब है कि आप विशेषता के नाम को छोड़कर सब कुछ छोड़ सकते हैं? क्योंकि अगर आप सब कुछ छोड़ सकते हैं , लेकिन मूल्य , आप बस "checked"विशेषता नाम के बिना लिख सकते हैं , और यह सही ढंग से काम करता है।
हनीले

4
@ क्वेंटिन टीएल, डीआर: यह शब्दार्थ है, लेकिन खाली विशेषता वाक्यविन्यास केवल विशेषता का नाम निर्दिष्ट करता है, न कि मूल्य
हनील

1
अगर बूलियन / खाली विशेषता को छोड़ने के बावजूद चेकबॉक्स चेक किया हुआ है (पृष्ठ को पुनः लोड करते समय) , तो अपने ब्राउज़र को स्वचालित रूप से जाँचने के लिए स्वत: पूर्ण = "बंद" का उपयोग करें। checked
संभालें

58

HTML5 कल्पना :

http://www.w3.org/TR/html5/forms.html#attr-input-checked :

अक्षम सामग्री विशेषता एक बूलियन विशेषता है।

http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :

एक तत्व पर बूलियन विशेषता की उपस्थिति सही मूल्य का प्रतिनिधित्व करती है, और विशेषता की अनुपस्थिति झूठे मूल्य का प्रतिनिधित्व करती है।

यदि विशेषता मौजूद है, तो इसका मान या तो खाली स्ट्रिंग होना चाहिए या ऐसा मान होना चाहिए जो विशेषता के विहित नाम के लिए ASCII केस-असंवेदनशील मिलान है, जिसमें कोई अग्रणी या अनुगामी व्हॉट्सएप नहीं है।

निष्कर्ष :

निम्नलिखित मान्य, समकक्ष और सत्य हैं :

<input type="checkbox" checked />
<input type="checkbox" checked="" />
<input type="checkbox" checked="checked" />
<input type="checkbox" checked="ChEcKeD" />

निम्नलिखित अमान्य हैं :

<input type="checkbox" checked="0" />
<input type="checkbox" checked="1" />
<input type="checkbox" checked="false" />
<input type="checkbox" checked="true" />

विशेषता की अनुपस्थिति झूठी के लिए एकमात्र वैध सिंटैक्स है :

<input />

सिफ़ारिश करना

यदि आप वैध XHTML लिखने के बारे में परवाह करते हैं, तो उपयोग करें checked="checked", क्योंकि <input checked>अमान्य XHTML (लेकिन मान्य HTML) और अन्य विकल्प कम पठनीय हैं। और, कम उपयोग करें <input checked>जैसा कि यह छोटा है।


2
मैंने 2 को संपादित करने और पहले रखने के लिए वापस रोल करने का फैसला किया है। जबकि उदाहरण पहले सामान्य रूप से जाने का तरीका है, मुझे लगता है कि यह वर्तमान शीर्ष लोगों के संबंध में इस उत्तर का विभेदक पहलू है जो केवल उदाहरण देते हैं। हालांकि सुझाव के लिए धन्यवाद :-)
सिरो संतिली 病

2
मुझे लगता है कि यह सही उत्तर है, इस बात पर जोर देते हुए कि अनुपस्थिति का मतलब गलत है। जबकि = "सत्य" काम करता है, इसका मतलब है कि = "असत्य" वांछित के रूप में काम करेगा और यह नहीं करता है।
शाम

35
<input ... checked />
<input ... checked="checked" />

जो समान रूप से मान्य हैं। और जावास्क्रिप्ट में:

input.checked = true;
input.setAttribute("checked");
input.setAttribute("checked","checked");

4
setAttribute डोम मार्कअप को संशोधित करता है , संपत्ति असाइनमेंट की आवश्यकता नहीं है।
user2864740

input.setAttribute("checked")TypeError: 'Element' पर 'setAttribute' को अंजाम देने में विफल: 2 तर्क आवश्यक, लेकिन केवल 1 वर्तमान
इवान

@IvanRave कुछ ब्राउज़र इस बारे में पांडित्यपूर्ण हैं, अन्य ठीक काम करेंगे।
नीट द डार्क एबसोल


5
  1. जाँच
  2. जाँच = ""
  3. जाँच = "जाँच"

    समतुल्य हैं;


स्पेक बॉक्स के अनुसार '---- = चेक किया गया = "चेक किया गया" या "" (खाली स्ट्रिंग) या खाली निर्दिष्ट करता है कि तत्व एक चयनित नियंत्रण है ।---'


2

यह बहुत पागल शहर है कि किसी भी मूल्य को छोड़ना गलत है। कोणीय 1.x के साथ, आप यह कर सकते हैं:

  <input type="radio" ng-checked="false">

यदि आप इसे अनियंत्रित करने की जरूरत है, जो बहुत अधिक समझदार है।


2

मुझे लगता है कि इससे मदद मिल सकती है:


सबसे पहले Microsoft और W3.org के सभी स्पेक्स पढ़ें।
आप देखेंगे कि चेकबॉक्स के वास्तविक तत्व की स्थापना यूआईटी या विशेषता नहीं बल्कि एलीमेंट प्रॉपर्टी पर की जानी चाहिए।
$('mycheckbox')[0].checked

दूसरे, आपको यह जानने की आवश्यकता है कि जाँची गई विशेषता RETURNS को एक स्ट्रिंग "सही", "गलत"
क्यों बताती है? क्योंकि आपको सही प्रकार का उपयोग करने की आवश्यकता है। एक स्ट्रिंग, बूलियन नहीं। अपने चेकबॉक्स को पार्स करते समय यह भी महत्वपूर्ण है।
$('mycheckbox')[0].checked = "true"

if($('mycheckbox')[0].checked === "true"){ //do something }

आपको यह भी महसूस करना होगा कि प्रारंभ में चेकबॉक्स का मान सेट करने के लिए "चेक किया हुआ" एटीटीआरआईबीयूटी है। एक बार जब तत्व DOM को प्रदान किया जाता है तो यह बहुत कुछ नहीं करता है। जब वेबपेज लोड हो जाता है और शुरू में पार्स होता है, तो यह काम कर रहा चित्र।
मैं इस पर IE की वरीयता के साथ जाऊंगा:<input type="checkbox" checked="checked"/>

अंत में, एक चेकबॉक्स के लिए भ्रम का मुख्य पहलू यह है कि चेकबॉक्स यूआई तत्व तत्व के संपत्ति मूल्य के समान नहीं है। वे सीधे तौर पर परस्पर संबंध नहीं रखते हैं। यदि आप .net में काम करते हैं, तो आप पाएंगे कि उपयोगकर्ता "चेकिंग" एक चेकबॉक्स कभी भी नियंत्रक को दिए गए वास्तविक बूल मान को नहीं दर्शाता है। यूआई सेट करने के लिए, मैं दोनों का उपयोग करता हूं $('mycheckbox').val(true);और$('mycheckbox').attr('checked', 'checked');


संक्षेप में, आपके लिए आवश्यक चेकबॉक्स के लिए:
प्रारंभिक डोम: <input type="checkbox" checked="checked">
तत्व संपत्ति: $('mycheckbox')[0].checked = "true";
यूआई: $('mycheckbox').val(true);और$('mycheckbox').attr('checked', 'checked');


-3

ठीक है, इसका उपयोग करने के लिए मुझे नहीं लगता कि मामले (अक्षम और आसानी से समान), व्यक्तिगत रूप से मैं चेक = "चेक" का उपयोग करता हूं, लेकिन अगर आप उन्हें जावास्क्रिप्ट के साथ हेरफेर करने की कोशिश कर रहे हैं, तो आप सही / गलत का उपयोग करते हैं


5
नहीं, यह ब्राउजर की एरर रिकवरी के लिहाज से भले ही (यह बहुत ज्यादा मायने रखता है) disabledऔर मायने रखता है readonly। यदि आप जेएस के साथ विशेषता में हेरफेर करना चाहते हैं तो आपको अभी भी उपयोग करना चाहिए checkedया removeAttribute('checked')checked संपत्ति लेता है trueया false
क्वेंटिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.