2013-07-09 3 views
13

मैं jQuery के साथ एक लेबल को कैसे अक्षम कर सकता हूं? मैंने कोशिश की:jQuery के साथ एक लेबल को अक्षम कैसे करें?

$('#some-id').prop('disabled', true);

लेकिन यह धूसर नहीं है।

मेरे HTML है: <label for="some-id">Label Here</label><input id="some-id"/>

+0

आपको –

+0

लेबल को ग्रेज़ करने के लिए एक सीएसएस नियम सेट करना होगा पहले से ही stackoverflow पर पूछा गया है: http://stackoverflow.com/questions/7330541/how-can-i-change-a-labels-color-when-its -इनपूट-अक्षम-अक्षम – mguimard

+1

लेबल अक्षम होने पर स्वचालित रूप से रंग नहीं बदलेगा। आपको अपने सीएसएस में एक संबंधित कक्षा को परिभाषित करने की आवश्यकता है। –

उत्तर

17

labels एक अक्षम संपत्ति स्वाभाविक में बनाया नहीं है आप उन्हें अपने आप को निष्क्रिय करने के लिए एक वर्ग जोड़ने की आवश्यकता होगी।।

कुछ की तरह:

.disabled { 
    color: darkgrey; 
    background-color: grey; 
} 

और अपने तत्व को वर्ग को जोड़ने के लिए:

$('#some-id').addClass('disabled'); 
1

आप इस तरह एक इनपुट निष्क्रिय कर सकते हैं:

$("#test").attr("disabled", "disabled"); 

ऐसा लगता है कि आप लेबल को अक्षम नहीं कर सकते हैं, क्योंकि यह किसी भी इनपुट को शुरू करने के लिए स्वीकार नहीं करता है। यदि आप इसे अक्षम करना चाहते हैं, तो आप टेक्स्ट के रंग को भूरे रंग में बदलने पर विचार कर सकते हैं।

$("#test").css("color", "#666"); 
+0

@Downvoter: समझाने की देखभाल? –

+2

वह डाउनवोट आपके संपादन से पहले था, और शायद इसलिए था क्योंकि आप '.attr()' या किसी अन्य चीज़ का उपयोग करके लेबल अक्षम नहीं कर सकते – Bojangles

4

लेबल अक्षम करने के लिए, उस फ़ॉर्म नियंत्रण को अक्षम करें जो इसके साथ जुड़ा हुआ है।

हालांकि लेबल की उपस्थिति में बदलाव नहीं आएगा, इसके लिए आपको उस सीएसएस को बदलना होगा जो उस पर लागू होता है। यह तत्व से कक्षा को जोड़ने (या निकालने) द्वारा सर्वोत्तम किया जाता है (और उस कक्षा से मेल खाने वाले पूर्व-मौजूदा सीएसएस नियम होने के बाद)।

0

जब आप इनपुट अक्षम करते हैं तो आपको लेबल में एक अक्षम वर्ग जोड़ना चाहिए। आप इसे इस तरह कर सकता है आप एक ही स्थान में सभी कोड रखना चाहते हैं:

$('#some-id, [for="some-id"]').prop('disabled', true).addClass('disabled'); 

कार्य JSFiddle example

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