JQuery के साथ फ़ॉर्म के अंदर सभी <इनपुट> को कैसे अक्षम करें?


जवाबों:


283

पुराने संस्करणों में आप उपयोग कर सकते हैं attr। 1.6 jQuery के रूप में आप propइसके बजाय का उपयोग करना चाहिए :

$("#target :input").prop("disabled", true);

'लक्ष्य' के अंदर सभी फॉर्म एलिमेंट्स को डिसेबल करने के लिए। देखें :input:

सभी इनपुट, टेक्सारिया, सिलेक्ट और बटन तत्वों से मेल खाता है।

यदि आप केवल <input>तत्व चाहते हैं:

$("#target input").prop("disabled", true);

21
JQuery 1.6 के रूप में आप का उपयोग करना चाहिए$("#target :input").prop("disabled", true);
Danijel

4
किसी को उत्तर को अद्यतन विधि से संपादित करना चाहिए - यह इस बिंदु पर केवल बुरी जानकारी है।
बेन क्लेर

और एक जमा () कॉलबैक में, $ (इस) का उपयोग करके, यह कैसे करें?
ओलिवियर पोंस

2
@OlivierPons $(this).closest('form').find('input').prop('disabled', true);। यकीन नहीं होता कि आप इसे बेहतर तरीके से समेकित कर सकते हैं, मैं अभी भी नहीं बल्कि jQuery में noobish हूँ।
wjervis

39

ऊपर का उदाहरण तकनीकी रूप से गलत है। नवीनतम jQuery के अनुसार, prop()विधि का उपयोग विकलांगों जैसी चीजों के लिए किया जाना चाहिए। उनके एपीआई पृष्ठ देखें।

'लक्ष्य' के अंदर सभी फॉर्म एलिमेंट्स को डिसेबल करने के लिए: इनपुट सेलेक्टर का उपयोग करें जो सभी इनपुट, टेक्सारिया, सिलेक्ट और बटन एलिमेंट्स से मेल खाता हो।

$("#target :input").prop("disabled", true);

यदि आप केवल तत्व चाहते हैं, तो इसका उपयोग करें।

$("#target input").prop("disabled", true);

15

इसके अलावा अधिक संक्षिप्त तरीका उनके चयनकर्ता इंजन का उपयोग करना है। तो एक डिव या पैरेंट के सभी फॉर्म एलिमेंट को डिसेबल करने के लिए।

$myForm.find(':input:not(:disabled)').prop('disabled',true)


8

सभी फ़ॉर्म को अक्षम करने के लिए, जितना आसान हो उतना लिखें:

jQuery 1.6+

$("#form :input").prop("disabled", true);

jQuery 1.5 और नीचे

$("#form :input").attr('disabled','disabled');

8

इस एक पंक्ति के साथ आप किसी भी इनपुट फ़ील्ड को एक फ़ॉर्म में अक्षम कर सकते हैं

$('form *').prop('disabled', true);

यह अनावश्यक रूप से प्रत्येक तत्व में एक अक्षम संपत्ति जोड़ता है।
ओस्वाल्डो मारिया

@OvaldoMaria हाँ, यह स्टार (सभी) चयनकर्ता की वजह से है, आप उन सभी इनपुट तत्वों के लिए एक .Custom- वर्ग जोड़ सकते हैं जिन्हें आप अक्षम करना चाहते हैं, फिर चयनकर्ता को $ ('फ़ॉर्म .custom-class') में बदल दें। 'विकलांग', सच ')।
समीर रहीमी

-1

निश्चित उत्तर (संस्करण 1.6 पर jQuery के एपीआई में परिवर्तन को कवर) गर्नफ द्वारा दिया गया है


उन्होंने "सभी सूचनाओं को एक फ़ॉर्म के अंदर अक्षम करने" के लिए कहा, न कि "सभी इनपुटों को अक्षम करें"।
बंगाला

@Bengala यकीन है, लेकिन आप एपीआई को बदल दिया था पहली बार इंगित करने के लिए मुझे कठोरता से चिह्नित कर रहे हैं। जिस समय मैंने यह पोस्ट किया, उस समय इस बिंदु का उल्लेख नहीं किया गया था।
ErichBSchulz

मैं समझता हूं, लेकिन मुझे लगता है कि आपको संबंधित क्रेडिट के साथ एक सही उत्तर शामिल करना चाहिए, लिंक सिर्फ यह दिखाता है कि सभी इनपुट को कैसे अक्षम किया जाए, जो मैं जोर देता हूं, यह सभी सवालों का जवाब नहीं देता है।
बंगाला
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.