2012-07-30 18 views
45

पर "अक्षम" विशेषता को हटाएं जावास्क्रिप्ट का उपयोग करके एचटीएमएल इनपुट में "अक्षम" विशेषता को कैसे हटाया जा सकता है?जावास्क्रिप्ट एचटीएमएल इनपुट

<input id=edit disabled> 

ऑनक्लिक पर मैं चाहता था कि मेरा इनपुट टैग "अक्षम" विशेषता न हो।

+0

संभावित डुप्लिकेट [मैं कैसे अक्षम कर सकता हूं चेकबॉक्स अनचेक होने पर बटन सबमिट करें?] (http://stackoverflow.com/questions/5458531/how-do-i-disable-a-submit-button-when-checkbox-is-uncheck) डुप्लिकेट करें क्योंकि वह प्रश्न बताता है कि कैसे टॉगल करें, इसलिए यहां पूछे जाने पर * और * अक्षम कैसे करें। –

उत्तर

108

सेट गलत पर तत्व के disabled संपत्ति:

document.getElementById('my-input-id').disabled = false; 

आप jQuery का उपयोग कर रहे हैं, तो बराबर होगा:

$('#my-input-id').prop('disabled', false); 

कई इनपुट फ़ील्ड के लिए, आप के बजाय वर्ग उन तक पहुंच सकता है :

var inputs = document.getElementsByClassName('my-input-class'); 
for(var i = 0; i < inputs.length; i++) { 
    inputs[i].disabled = false; 
} 

जहां document को प्रतिस्थापित किया जा सकता है उदाहरण के लिए, फॉर्म को केवल उस फ़ॉर्म के अंदर तत्व ढूंढने के लिए। आप सभी इनपुट तत्व प्राप्त करने के लिए getElementsByTagName('input') का भी उपयोग कर सकते हैं। आपके for पुनरावृत्ति में, आपको उस inputs[i].type == 'text' को जांचना होगा।

+1

हाँ यह काम करता है, लेकिन मुझे एक ही चीज़ करने के लिए बहुत सारे इनपुट की आवश्यकता थी। क्या इसके लिए कोई शॉर्टकट है? क्या यह posible ('id1', 'id2', 'id3') है? –

+0

@IvorySantos: ठीक है, मेरा संपादन देखें। –

+1

हाँ, यह काम करता है! धन्यवाद। जिस तरह से geElementsBy पर एक टाइपो-त्रुटि है। मैंने सोचा कि यह काम नहीं करेगा :) –

2

इनपुट के name संपत्ति का उपयोग कर गलत पर disabled सेट करने के लिए:

document.myForm.myInputName.disabled = false; 
13

क्यों नहीं सिर्फ इतना है कि विशेषता निकालना चाहते हैं?

  1. वेनिला जे एस: elem.removeAttribute('disabled')
  2. jQuery: elem.removeAttr('disabled')
पिछले जवाब की
+1

'jQuery (" # सफलता ")। RemoveAttr (" अक्षम ");' - यह मेरे लिए काम करता है, धन्यवाद! – aftamat4ik

0
method 1 <input type="text" onclick="this.disabled=false;" disabled> 
<hr> 
method 2 <input type="text" onclick="this.removeAttribute('disabled');" disabled> 
<hr> 
method 3 <input type="text" onclick="this.removeAttribute('readonly');" readonly> 

कोड इनलाइन मोड में काम करने के लिए नहीं है, लेकिन वहाँ एक समाधान नहीं है: विधि 3.

डेमो देखें https://jsfiddle.net/eliz82/xqzccdfg/

+0

यह दो मेरे लिए काम नहीं कर रहे हैं। 'विधि 1 <इनपुट प्रकार =" पाठ "onclick =" this.disabled = false; " अक्षम>


विधि 2 <इनपुट प्रकार = "पाठ" onclick = "this.removeAttribute ('अक्षम');" अक्षम> ' –

+1

आपने इसे सिर्फ इसलिए घटा दिया क्योंकि आप सही ढंग से नहीं जानते कि उत्तर कैसे पढ़ा जाए? विधि 1 डेविड हेडलंड प्रतिक्रिया से है, विधि 2 ड्रैगोज Rusu प्रतिक्रिया से है। एक बार तत्व अक्षम हो जाने पर, उस विशिष्ट तत्व पर "ऑनक्लिक" अब इनलाइन मोड में काम नहीं करेगा (मैंने बाहरी जेएस मोड का परीक्षण नहीं किया है)। "अक्षम" अनुकरण करने का एकमात्र तरीका रीडोनली विशेषता और कुछ सीएसएस का उपयोग करके थोड़ा सा कामकाज है। या एक बटन जैसे बाहरी "ऑनक्लिक" तत्व बनाएं जो विधि 1 और 2 (जो निश्चित रूप से कार्य करेगा) का उपयोग करके इनपुट सक्षम करेगा। – eliz82

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