2010-09-27 26 views
94

का उपयोग कर इनपुट तत्व में अक्षम विशेषता जोड़ें मेरे पास एक इनपुट बॉक्स है और मैं इसे अक्षम करना चाहता हूं और साथ ही साथ मेरे फॉर्म को पोर्ट करते समय समस्याओं से बचने के लिए इसे छुपाएं।जावास्क्रिप्ट

<input class="longboxsmall" type="text" /> 

कैसे मैं भी करने के लिए विकलांग विशेषता जोड़ सकते हैं:

$(".shownextrow").click(function() { 
    $(this).closest("tr").next().show().find('.longboxsmall').hide(); 
}); 

इस इनपुट है कि एक परिणाम के रूप में छिपा हुआ हो जाता है:

अब तक मैं अपने इनपुट को छिपाने के लिए निम्नलिखित कोड है इनपुट?

उत्तर

218

$("input").attr("disabled", true); ... मुझे और नहीं पता।

यह दिसंबर 2013 है और मुझे वास्तव में आपको नहीं पता कि आपको क्या कहना है।

सबसे पहले यह हमेशा .attr() था, तो यह हमेशा .prop() था, इसलिए मैं यहां वापस आया और उत्तर को और सटीक बना दिया।

फिर एक साल बाद jQuery ने फिर से अपने दिमाग बदल दिए और मैं इसका ट्रैक भी नहीं रखना चाहता।

अभी तक की लंबी कहानी छोटी है, यह सबसे अच्छा जवाब है: "आप दोनों का उपयोग कर सकते हैं ... लेकिन यह निर्भर करता है।"

आप इस उत्तर के बजाय पढ़ना चाहिए: कि बदलाव के लिए https://stackoverflow.com/a/5876747/257493

और उनकी रिहाई यहां नोट शामिल हैं:

न तो .attr() और न ही .prop() हो रही है/स्थापना के लिए इस्तेमाल किया जाना चाहिए मूल्य। इसके बजाय .val() विधि का उपयोग करें (हालांकि .attr ("value", "somevalue") का उपयोग करना जारी रहेगा, क्योंकि यह 1.6 से पहले था)।

पसंदीदा प्रयोग

.prop() विधि का सारांश बूलियन गुण/संपत्तियों के लिए और गुण (जैसे विंडो स्थान के रूप में) जो एचटीएमएल में मौजूद नहीं है के लिए इस्तेमाल किया जाना चाहिए। अन्य सभी विशेषताओं (जिन्हें आप HTML में देख सकते हैं) .attr() विधि के साथ छेड़छाड़ कर सकते हैं और जारी रखना चाहिए।

या दूसरे शब्दों में:

".prop = गैर दस्तावेज़ सामान"

".attr" = दस्तावेज़ सामान

... ...

हम सभी एपीआई स्थिरता के बारे में यहां सबक सीख सकते हैं ...

+7

अद्यतन के लिए +1। धन्यवाद। – rie819

+3

+1 मुझे ध्यान देने के लिए अपडेट टेक्स्ट को काफी बड़ा बनाने के लिए –

+0

@VaelVictus इतना तेज़ नहीं है। मुझे खेद है कि मैंने इसे पोस्ट करने के एक साल बाद इसे फिर से बदल दिया है ... और मैं इस जवाब के बारे में भूल गया। यह उत्तर पढ़ें: http://stackoverflow.com/a/5876747/257493 – Incognito

2

बस jQuery के attr() विधि

$(this).closest("tr").next().show().find('.longboxsmall').attr('disabled', 'disabled'); 
+0

और '.removeAttr ('अक्षम') का उपयोग कर अक्षम राज्य को हटाएं;' – ruhong

10

का उपयोग आप डोम तत्व प्राप्त कर सकते हैं, और सीधे विकलांग गुण सेट।

$(".shownextrow").click(function() { 
    $(this).closest("tr").next().show() 
      .find('.longboxsmall').hide()[0].disabled = 'disabled'; 
}); 

या अगर कोई एक से अधिक है, तो आप उन सभी को स्थापित करने के लिए each() उपयोग कर सकते हैं:

$(".shownextrow").click(function() { 
    $(this).closest("tr").next().show() 
      .find('.longboxsmall').each(function() { 
       this.style.display = 'none'; 
       this.disabled = 'disabled'; 
      }); 
}); 
5
$(element).prop('disabled', true); //true|disabled will work on all 
$(element).attr('disabled', true); 
element.disabled = true; 
element.setAttribute('disabled', true); 

उपरोक्त सभी पूरी तरह से वैध समाधान कर रहे हैं। अपनी जरूरतों को पूरा करने वाले व्यक्ति को चुनें।

+0

वास्तविक प्रश्न यह है कि "मैं इनपुट में अक्षम विशेषता को कैसे जोड़ सकता हूं?" कीवर्ड "भी" होने के साथ। मतलब ओपी जानता है कि शेष कैसे करें, वास्तव में वह सभी के लिए पूछा गया है कि अक्षम विशेषता को कैसे सेट किया जाए। – user1596138

10

यदि आप jQuery का उपयोग कर रहे हैं तो अक्षम विशेषता सेट करने के कुछ अलग तरीके हैं। मेरी स्रोतों से

var $element = $(...); 
    $element.prop('disabled', true); 
    $element.attr('disabled', true); 

    // The following do not require jQuery 
    $element.get(0).disabled = true; 
    $element.get(0).setAttribute('disabled', true); 
    $element[0].disabled = true; 
    $element[0].setAttribute('disabled', true); 
+0

'element.eq (0) [0] .disabled = true;' के बारे में क्या? :-P – qwertynl

+1

हाँ, यह मेरे लिए उन्नत है, मैं प्रदर्शन में सुधार करने के लिए अब तक नहीं जाता हूं। – iConnor

+0

+1। हालांकि यह थोड़ा अनावश्यक है। यदि आप किसी नोडलिस्ट/तत्वों की सरणी से निपटने जा रहे हैं तो यह इंडेक्स द्वारा उन्हें चुनने के लिए मूर्खतापूर्ण है। इटरेशन या बस आपको जिस तत्व की आवश्यकता है उसका चयन करना अधिक समझ में आता है। – user1596138

32

कार्य कोड:

एचटीएमएल वर्ल्ड

<select name="select_from" disabled>...</select> 

जे एस वर्ल्ड

var from = jQuery('select[name=select_from]'); 

//add disabled 
from.attr('disabled', 'disabled'); 



//remove it 
from.removeAttr("disabled"); 
+1

Google से यहां आने वाले लोगों के लिए एक नोट के रूप में, सीधे [jQuery] (http://api.jquery.com/attr/#attr1) से: 'jQuery 1.6 के रूप में, .attr() विधि गुणों के लिए अपरिभाषित है सेट नहीं किया गया है। डीओएम गुणों को पुनर्प्राप्त करने और बदलने के लिए जैसे कि फॉर्म तत्वों की चेक, चयनित, या अक्षम स्थिति, .prop() विधि ' –

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

  • कोई संबंधित समस्या नहीं^_^