यह प्रश्न 2 वर्ष पुराना है लेकिन यह अभी भी एक अच्छा प्रश्न है और यह पहला Google परिणाम था ... लेकिन सभी मौजूदा उत्तर HTML विशेषता (हटाने ("अक्षम")) "अक्षम" को हटाने और हटाने की सलाह देते हैं , जो नहीं है सही दृष्टिकोण। विशेषता बनाम संपत्ति को लेकर बहुत भ्रम है।
एचटीएमएल
<input type="button" disabled>
मार्कअप में "अक्षम" को डब्ल्यू 3 सी द्वारा बूलियन विशेषता कहा जाता है ।
HTML बनाम DOM
उद्धरण:
एक संपत्ति DOM में है; एक विशेषता HTML में है जिसे DOM में पार्स किया गया है।
https://stackoverflow.com/a/7572855/664132
JQuery
सम्बंधित:
फिर भी, जाँच की गई विशेषता के बारे में याद रखने के लिए सबसे महत्वपूर्ण अवधारणा यह है कि यह जाँच की गई संपत्ति के अनुरूप नहीं है। विशेषता वास्तव में defaultChecked संपत्ति से मेल खाती है और केवल प्रारंभिक मूल्य निर्धारित करने के लिए इस्तेमाल किया जाना चाहिए चेकबॉक्स की। चेक किया गया गुण मान चेकबॉक्स की स्थिति के साथ परिवर्तित नहीं होता है, जबकि चेक की गई संपत्ति करता है। इसलिए, यह निर्धारित करने के लिए क्रॉस-ब्राउज़र-संगत तरीका है कि चेकबॉक्स चेक किया गया है, तो संपत्ति का उपयोग करना है ...
से मिलता जुलता:
गुण आमतौर पर क्रमबद्ध HTML विशेषता को बदले बिना एक DOM तत्व की गतिशील स्थिति को प्रभावित करते हैं। उदाहरणों में इनपुट तत्वों की मूल्य संपत्ति, इनपुट और बटन की अक्षम संपत्ति या चेकबॉक्स की चेक की गई संपत्ति शामिल है। .Pr () विधि के बजाय .prop () विधि को अक्षम और जाँचने के लिए उपयोग किया जाना चाहिए।
$( "input" ).prop( "disabled", false );
सारांश
[...] के रूप में इस तरह के रूप में [...] निष्क्रिय तत्वों के तत्वों को अक्षम करें, .prop () विधि का उपयोग करें ।
( http://api.jquery.com/attr/ )
प्रश्न के परिवर्तन भाग पर अक्षम के लिए: "इनपुट" नामक एक घटना है, लेकिन ब्राउज़र समर्थन सीमित है और यह एक jQuery घटना नहीं है, इसलिए jQuery इसे काम नहीं करेगा। परिवर्तन घटना मज़बूती से काम करती है, लेकिन जब तत्व ध्यान केंद्रित करता है तो निकाल दिया जाता है। तो एक दो को जोड़ सकता है (कुछ लोग कीप और पेस्ट के लिए भी सुनते हैं)।
यहाँ कोड का एक अनुपयोगी टुकड़ा है जो यह दर्शाता है कि मेरा क्या मतलब है:
$(document).ready(function() {
var $submit = $('input[type="submit"]');
$submit.prop('disabled', true);
$('input[type="text"]').on('input change', function() { //'input change keyup paste'
$submit.prop('disabled', !$(this).val().length);
});
});