2010-05-20 13 views
24

एक मूर्ख सवाल की तरह लगता है, लेकिन मुझे आश्चर्य है कि एचटीएमएल में एक चेकबॉक्स चेक/अनचेक किया गया है यह कहने का सबसे अच्छा तरीका क्या है।बूलियन विशेषताओं के लिए वाक्यविन्यास क्या है, उदा। एचटीएमएल में एक चेकबॉक्स चेकबॉक्स?

मैंने देखा है कई अलग अलग उदाहरण:

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

<input type="checkbox" checked="yes" /> 
<input type="checkbox" checked="no" /> 

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

कौन से ब्राउज़र सबसे महत्वपूर्ण बात इनमें से कौन सा के साथ काम है, और, jQuery यह पता लगाने जो बॉक्स सभी 3 में चेक किया गया है?

संपादित करें: डब्ल्यू 3 सी स्पेक का अर्थ यह है कि केवल चेक किए गए एटर सही हैं। क्या इसका मतलब है कि चेक = "झूठी" और चेक = "नहीं" अभी भी बॉक्स को चेक करेगा?

+0

संभावित डुप्लिकेट [HTML चेकबॉक्स की एक चेक किए गए विशेषता के लिए उचित मूल्य क्या है?] (Http://stackoverflow.com/questions/7851868/whats-the-proper-value-for-a-checked-attribute- ऑफ-ए-एचटीएमएल-चेकबॉक्स) –

उत्तर

31

है HTML में: सही

<input type="checkbox" checked="checked" /> 
+2

'चेक =" "' भी मान्य है। अतिरिक्त पढ़ने की सामग्री: http://www.whatwg.org/specs/web-apps/current-work/#boolean-attributes –

+0

यहां इस उत्तर को पढ़ने के लायक भी है: https://stackoverflow.com/a/24588369/5264501 –

7

HTML:

के रूप में वे W3C page पर कहते हैं कि उनमें से कोई भी सही एक होना चाहिए। checked विशेषता को बस सेट करना होगा।

जैसा कि मैंने Coronatus 'टिप्पणी में लिखा है:

वास्तव में, यह कोई फर्क नहीं पड़ता अगर यह जाँच की है, जाँच = "जो कुछ भी" या जाँच = "जाँच"। यह बूलियन मान की जांच कर रहा है, इसलिए यह या तो सत्य (सेट) या गलत (सेट नहीं है) है।

एक्सएचटीएमएल:

आप इसे निर्दिष्ट करने के लिए है, इसलिए checked="checked" ही मान्य है। अधिकांश ब्राउज़र शायद HTML मानों को सही तरीके से पार्स करेंगे, लेकिन फिर भी आपको अपने पृष्ठ पर त्रुटि होगी।

1

"चेक" संपत्ति की उपस्थिति स्थिति निर्दिष्ट करती है। मान अप्रासंगिक है/आवश्यक नहीं है।

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

मेरे सुझाव

+3

मूल्य मायने रखता है - इसे केवल "चेक किया जा सकता है" (ब्राउज़र केवल बकवास के लिए सही त्रुटि है। त्रुटि पुनर्प्राप्ति पर निर्भर न करें, इसके बजाय त्रुटि मुक्त कोड लिखें)।यदि आप HTML लिख रहे हैं (एक्सएचटीएमएल के विपरीत) आप नाम (और बराबर) को केवल मूल्य छोड़कर नाम (और बराबर और उद्धरण) छोड़ सकते हैं। (बूलियन विशेषताएं अजीब हैं।) – Quentin

+0

जैसा कि आपने पोस्ट पर कोड से देखा था, मैं यह नहीं कह रहा हूं कि मान मौजूद नहीं होना चाहिए। मैं बस इतना कह रहा हूं कि आप चेक = "हैलो" लिख सकते हैं या चेक = "शायद" और अभी भी वांछित परिणाम प्राप्त कर सकते हैं। – kazanaki

+0

लेकिन हाँ आप सही हैं कि हमें एक्सएचटीएमएल को लक्षित करना चाहिए, न केवल HTML। – kazanaki

5

HTML spec के अनुसार,:

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

एक्सएचटीएमएल के लिए आप विशेषता/मूल्य मिलान जोड़े का उपयोग करना पड़ एक है:

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

मैं इसका उपयोग करता हूं और jQuery उनके साथ पूरी तरह से काम करता है।

+0

वास्तव में, इससे कोई फर्क नहीं पड़ता कि यह चेक किया गया है, चेक किया गया = "जो भी" या चेक = "चेक किया गया"। यह बूलियन मान की जांच कर रहा है, इसलिए यह या तो सत्य (सेट) या झूठा (सेट नहीं है) है। –

2

एक त्वरित परीक्षण से पता चलता है कि jQuery किसी भी मूल्य सेट को चेक करने के बराबर करता है।

alert($('input:checked').length); 
// Returns 5 

यहां तक ​​कि एक खाली स्ट्रिंग और नकारात्मक मान।

1

मैं क्रोम, फ़ायरफ़ॉक्स और ओपेरा पर इसका उपयोग करके सावधान रहूंगा। Chorme को दिखाए गए चेकबॉक्स के साथ कोई समस्या है, फ़ायरफ़ॉक्स शैलियों और टैग के साथ संवेदनशील है, और ओपेरा ठीक चल रहा है लेकिन अद्यतन करने में धीमा है। इस्तेमाल होने वाले ब्राउज़र के संस्करण हो सकते हैं।

इसके अलावा मुझे विश्वास है कि इसे <input type="checkbox" checked /> चलाएं, बस उन सभी में ठीक है। वास्तव में एकमात्र अंतर यह है कि व्यक्तिगत ब्राउज़र पृष्ठ पर सामग्री दिखाने के लिए कैसे दिखाई देते हैं।

1

डब्ल्यू 3 सी स्पेक का अर्थ यह है कि केवल चेक किए गए एटर सही हैं। क्या इसका मतलब है कि चेक = "झूठी" और चेक = "नहीं" अभी भी बॉक्स को चेक करेगा?

बिल्कुल। यही कारण है कि checked="true" और checked="yes" का उपयोग करना एक बुरा विचार है, उनका मतलब है कि checked="false" और checked="no" बॉक्स को चेक नहीं करेगा।

0

एचटीएमएल 5 कल्पना:

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

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

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

निष्कर्ष:

Let टैग tag की एक बूलियन विशेषता, checked और <input type="checkbox" तरह boolean

निम्नलिखित , वैध बराबर और सही हैं:

<tag boolean /> 
<tag boolean="" /> 
<tag boolean="boolean" /> 
<tag boolean="BoOlEaN" /> 

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

<tag boolean="0" /> 
<tag boolean="1" /> 
<tag boolean="false" /> 
<tag boolean="true" /> 

विशेषता के अभाव के लिए झूठी वैध वाक्य रचना है :

<tag /> 

सिफ़ारिश

आप मान्य एक्सएचटीएमएल लेखन के बारे में परवाह है, तो boolean="boolean" उपयोग करते हैं, <tag boolean> के बाद से अवैध एक्सएचटीएमएल (लेकिन मान्य HTML) और अन्य विकल्प कम पढ़े जा सकते हैं। अन्यथा, बस <tag boolean> का उपयोग करें क्योंकि यह छोटा है।

+0

हालांकि इस डिजाइन के पीछे कोई विचार है? यह काउंटर अंतर्ज्ञानी लगता है और मैं सिर्फ एक बूलियन मूल्य का उपयोग करने पर किसी भी लाभ के बारे में नहीं सोच सकता। उदाहरण के लिए, मैं एक प्रतिपादन इंजन (विजुअलफोर्स/सेल्सफोर्स) के साथ काम कर रहा हूं जो इस नोटेशन का समर्थन नहीं करता है। – NSjonas

+0

@NSjonas नहीं! :-) शायद लिखने के लिए छोटा? –

संबंधित मुद्दे