2012-01-30 14 views
40

jquery का उपयोग करके मैं बस यह कैसे जांचूं कि यह केवल पढ़ने के लिए है या नहीं? ,ड्रॉपडाउन अक्षम होने पर कैसे जांचें?

if ($('#dropLength').find('option').length <= 1) { 
     $('#dropLength').attr("disabled", "disabled"); 
} 
if ($('#dropUnit').find('option').length <= 1) { 
     $('#dropUnit').attr("disabled", "disabled"); 
} 
+0

रीडोनली से आपका मतलब अक्षम है? –

+0

कृपया ध्यान दें कि HTML दो विशेषताओं को परिभाषित करता है जो संबंधित हैं लेकिन अलग हैं: 'readonly' और' disabled'। –

उत्तर

81

विरासत समाधान है, 1.6 से पहले:

इस मैं क्या कोशिश कर रहा हूँ है ..

$("#item").keydown(function (event) { 
    //alert(event.keyCode); 
    if (event.keyCode == 13) { 
     $("#ok").click();    
     if ($('#dropLength').prop("disabled") == false) { 
      $("#dropLength").focus(); 
      return; 
     } 
     if ($('#dropUnit').prop("disabled") == false) { 
      $("#dropUnit").focus(); 
      return; 
     } 
     $("#qty").focus();     
     return ; 
    } 
}); 

ड्रॉपडाउन भी jQuery का उपयोग कर केवल पढ़ने के लिए सेट कर रहे हैं .attr का उपयोग करना था और लौटाए गए मान को bool के रूप में संभालना था। मुख्य समस्या यह है कि .attr का लौटा प्रकार string में बदल गया है, और इसलिए == true के साथ तुलना टूट गई है (http://jsfiddle.net/2vene/1/ देखें (और jquery-version स्विच करें))।

1.6 .prop के साथ पेश किया गया था, जो bool देता है।

फिर भी, मैं .is() उपयोग करने के लिए सुझाव देते हैं, के रूप में लौटा प्रकार आंतरिक रूप से bool है, जैसे:

$('#dropUnit').is(':disabled'); 
$('#dropUnit').is(':enabled'); 

इसके अलावा .is() भी बहुत कुछ ("प्राकृतिक भाषा" के संदर्भ में) स्वाभाविक है और एक से ज्यादा की स्थिति कहते हैं सरल विशेषता-तुलना (उदाहरण: .is(':last'), .is(':visible'), ... कृपया documentation on selectors देखें)।

+0

इस उत्तर में गलत और भ्रामक जानकारी है। यह '$ ('# ड्रॉप लम्बाई') का उपयोग करने के लिए पूरी तरह से ठीक है। JQuery 1.6+ के साथ prop (" disabled ") == false'। यह ठीक काम करता है।@Andreas '$ ('# ड्रॉप लम्बाई') भ्रमित कर रहा है। '$ (' # DropLength ') के साथ attr (" अक्षम ")' (जो' झूठी/सत्य' नहीं लौटाएगा)। प्रोप ("अक्षम") '(जो 'झूठा/सच' वापस आ जाएगा)। यह '$ (' # ड्रॉप लम्बाई ') का उपयोग करने के लिए पूरी तरह से सुरक्षित है। एक बूलियन के रूप में प्रोप ("अक्षम") '। http://jsfiddle.net/nsnomatz/ –

+0

@DougS मैं '.attr' के साथ पूरी तरह से' .prop' को भ्रमित नहीं कर रहा हूं, क्योंकि '.attr' का उपयोग पोर्प्यूज पर था और पहेली में स्पष्ट था। जैसा कि मैंने अपने उत्तर में उल्लेख किया है: '.attr' का लौटा प्रकार बदलकर 'स्ट्रिंग' हो गया है (क्योंकि विशेषता का मान एक स्ट्रिंग है), और कई विरासत कार्यान्वयन' .attr' ('.prop 'पर निर्भर करते हैं। '1.6 के साथ पेश किया गया था)' बूल 'लौट रहा था। यही कारण है कि मैं कभी भी '.attr' और न ही'prop' के साथ एक स्पष्ट जांच के लिए जाऊंगा और उचित छद्म वर्ग के साथ' .is 'करूँगा। –

+0

आप उन लोगों से नरक को भ्रमित करने जा रहे हैं जो आपका उत्तर पढ़ते हैं और सोचते हैं कि 'प्रोप' टूट गया है। यह टूटा नहीं है! यह ठीक काम करता है। मूल प्रश्न उस कोड का भी उपयोग नहीं करता है जिसका आप उल्लेख कर रहे हैं। वह सही ढंग से 'प्रोप' का उपयोग कर रहा है। और अब आपने अपनी टिप्पणी में स्पष्ट किया है कि भविष्य में काम करने के लिए 'प्रोप' बंद होने पर आप 'is' का उपयोग करना पसंद करते हैं। अपने उत्तर को ठीक करें ताकि लोग जान सकें कि 'प्रोप' टूटा नहीं गया है और बुलियन के रूप में ठीक काम करता है। –

-3

यह $(#dropUnit).attr("disabled") == false

+2

-, xhtml मान्य नहीं है, और 1.7.1 के बाद से यह अक्षम तोड़ दिया गया है यदि 'अक्षम = "अक्षम" '... btw चयनकर्ता मान्य नहीं है! –

+0

http://jsfiddle.net/2vene/1/ देखें (और jquery-version स्विच करें) –

+3

सही! आपके उत्तर और टिप्पणी दोनों को ऊपर उठाया। – Mike

5

कोशिश निम्नलिखित या जाँच डेमो disabled और readonly

$('#dropUnit').is(':disabled') //Returns bool 
$('#dropUnit').attr('readonly') == "readonly" //If Condition 

आप देख सकते हैं jQuery FAQ

1

पास दो विकल्प होते हैं:

पहले

तुम भी जाँच करके यदि गुण मूल्यहै का उपयोग कर सकते is()

$('#dropDownId').is(':disabled'); 

दूसरा

तरह == true का उपयोग करना 10। attr()

$('#dropDownId').attr('disabled'); 

जो कुछ भी आपको लगता है कि अच्छी तरह फिट हैं, तो आप उपयोग कर सकते हैं :)

चीयर्स!

+1

' == true' या उपयोग न करें '== झूठा' - उपयोग 1.6 के आसपास टूट गया है! मेरा जवाब और परीक्षण करने के लिए लिंक देखें! –

+0

@Manish क्या इसका उपयोग केवल विकलांग के लिए किया जा सकता है? मैंने इसे सक्षम करने के लिए इस्तेमाल किया और यह विफल हो गया !! – hima

+1

उपरोक्त एंड्रियास टिप्पणी को अनदेखा करें। यह आंशिक रूप से गलत है। वह 'propr ('अक्षम')' 'prop ('अक्षम')' भ्रमित कर रहा है। एक बूलियन के रूप में 'प्रोप (' अक्षम ') 'का उपयोग करना ठीक है। –

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