मैं कुछ स्थितियों के आधार पर HTML फॉर्म तत्वों का एक अनुभाग अक्षम करना चाहता हूं। ऐसा करने का आदर्श तरीका यह है:क्या फ़ॉर्म तत्वों का एक गुच्छा एक बार में अक्षम करने का कोई तरीका है?
<fieldset disabled>
<input value="one" />
<input value="two" />
</fieldset>
अब, उन दो इनपुट अक्षम हैं। हालांकि, यह IE8 पर पूरी तरह से borked लगता है। इनपुट अक्षम दिखाई देते हैं लेकिन मैं अभी भी उनमें टाइप कर सकता हूं।
Fiddle (नहीं के रूप में JsFiddle वास्तव में IE8 में काम करता है)
इस समस्या के लिए एक क्रॉस-ब्राउज़र समाधान है हर रूप तत्व (जो मेरी स्क्रिप्ट को मुश्किल होगा) को विकलांग जोड़े बिना ही। मैं शायद jQuery में <fieldset>
का चयन करने की तरह कुछ मुश्किल कर सकता हूं, फिर .each()
सभी फॉर्म तत्वों के माध्यम से और उन्हें अक्षम कर सकता हूं - हालांकि, मैं वास्तव में disabled
विशेषता को नॉकआउट बाध्यकारी का उपयोग कर रहा हूं, इसलिए वास्तव में ऐसे कोड को जोड़ने के लिए कोई जगह नहीं है। मेरा आखिरी उपाय एक कस्टम नॉकआउट बाइंडिंग का उपयोग करना है जो सभी बच्चों को भी अक्षम करता है, लेकिन ले श्वास।
आप इनपुट पर क्लिक रोकने के लिए ओवरले का उपयोग कर सकते हैं, लेकिन इससे उन्हें टैबबिंग को रोका नहीं जा सकता है, इसलिए आप टैबिडेक्स विशेषता के साथ एक ही नाव में होंगे। आप एक ऐसी घटना को बांध सकते हैं जो कि कुंजीपटल होने से रोकती है, या उस मामले के लिए फोकस ईवेंट भी रोकती है। –
हाँ, मैं उस समाधान में * बेहद * नहीं हूं। इसके अलावा, इसे नॉकआउट टेम्पलेट में एकीकृत करना अभी भी एक परेशानी है। मैं बस अलग-अलग तत्वों को अलग-अलग अक्षम कर दूंगा। –
@ माइक क्रिस्टेनसेन: 'फ़ील्डसेट 'IE8 में' बोर्कड 'नहीं है। यह सिर्फ पूरी तरह से समर्थित नहीं है। 'फ़ील्डसेट' एक HTML5 जोड़ है और आईई 8 बहुत कम एचटीएमएल 5 फॉर्म तत्वों का समर्थन करता है। आईई 8 ** के लिए [** http: //html5test.com परिणाम देखें] [http://html5test.com/compare/browser/ie08.html) 'फ़ील्डसेट' केवल आईई 8 में आंशिक रूप से समर्थित है। जैसा कि परिणाम 'तत्व विशेषताओं' में देखा गया है समर्थित नहीं हैं। तो आपको एक विकल्प के साथ आने की संभावना है। सुझाए गए एक ओवरले विकल्पों में से एक हो सकता है। हालांकि एक पॉलीफिल हो सकता है जो आईई 8 में फ़ील्ड पर काम करेगा। हालांकि इसके बारे में 100% निश्चित नहीं है। – Nope