जावास्क्रिप्ट हटाने html इनपुट से "अक्षम" विशेषता


101

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

<input id="edit" disabled>

onClick मैं चाहता हूं कि मेरा इनपुट टैग "अक्षम" विशेषता से युक्त न हो।


चेकबॉक्स के अनचेक होने पर मैं सबमिट बटन को कैसे निष्क्रिय कर सकता हूं? डुप्लिकेट क्योंकि यह प्रश्न बताता है कि टॉगल कैसे करें, इसलिए यहां पूछे गए अनुसार सक्षम और अक्षम कैसे करें।
सिरो शांतिली 13 iro iro i 法轮功 '

जवाबों:


199

तत्व की 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
हां यह काम करता है, लेकिन मुझे एक ही काम करने के लिए बहुत सारे इनपुट की आवश्यकता थी। क्या इसका कोई शॉर्टकट है? क्या यह पॉसिबल ('id1', 'id2', 'id3') है?
जाम विले

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

34

सिर्फ उस विशेषता को क्यों नहीं हटाते?

  1. वेनिला JS: elem.removeAttribute('disabled')
  2. jQuery: elem.removeAttr('disabled')

1
jQuery("#success").removeAttr("disabled");- यह मेरे लिए काम करता है, धन्यवाद!
आफतमात ४ik

वेनिला जे एस, removeAttribute IE में समर्थित नहीं है।
MarCrazyness

removeAttributeIE11 में @MarCrazyness का समर्थन किया गया लगता है। यह unknownमेरे द्वारा उपयोग किए जा सकने वाले के रूप में चिह्नित है , इसलिए मैंने सिर्फ IE खोला और जाँच की कि क्या यह काम करता है। ऐसा होता है।
आर्टूर

2

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

document.myForm.myInputName.disabled = false;

1

सबसे अच्छा जवाब सिर्फ हटाने है

element.removeAttribute("disabled");

फायरफॉक्स में, नॉएडिस (2020) के रूप में, अक्षम विशेषता सक्रिय है और यह झूठी पर सेट है। फ़ायरफ़ॉक्स सिर्फ विशेषता के लिए देख रहा है। तो सबसे अच्छा समाधान यह है कि इसे फ़ायरफ़ॉक्स के लिए जोड़ा या हटाया जाए, और यह निश्चित रूप से सभी प्रमुख ब्राउज़रों के लिए काम करता है।
राफेल मीयर

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/


यह दो मेरे लिए काम नहीं कर रहा है। method 1 <input type="text" onclick="this.disabled=false;" disabled> <hr> method 2 <input type="text" onclick="this.removeAttribute('disabled');" disabled>
अम्बल मणि

1
आपने इसे केवल इसलिए अस्वीकृत कर दिया क्योंकि आप ठीक से नहीं जानते कि उत्तर कैसे पढ़ें? विधि 1 डेविड हेडलंड प्रतिक्रिया से है, विधि 2 ड्रैगोस रूसु प्रतिक्रिया से है। एक तत्व के निष्क्रिय हो जाने के बाद, उस विशिष्ट तत्व पर "ऑनक्लिक" इनलाइन मोड में काम नहीं करेगा (मैंने बाहरी जेएस मोड का परीक्षण नहीं किया था)। एकमात्र तरीका "अक्षम" को अनुकरण करना है जो आसानी से पढ़ी जाने वाली विशेषता और कुछ सीएसएस का उपयोग करके थोड़ा सा बदलाव है। या एक बटन की तरह एक बाहरी "ऑनक्लिक" तत्व बनाएं जो विधि 1 और 2 (जो निश्चित रूप से काम करेगा) का उपयोग करके इनपुट को सक्षम करेगा।
crisc82
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.