2012-04-15 14 views
6

मुझे आश्चर्य है कि किसी अन्य तत्व स्थिति के आधार पर "आवश्यक" तत्व सेट करना संभव है या नहीं। उदाहरण के लिए, कहें कि मेरे पास एक इनपुट तत्व है जिसे मैं "आवश्यक" होना चाहता हूं यदि केवल उपयोगकर्ता ही एक विशिष्ट चेकबॉक्स की जांच करता है। सबसे पहले, जावास्क्रिप्ट के उपयोग के बिना ऐसा करना संभव है? दूसरा, अगर हम जावास्क्रिप्ट का उपयोग करते हैं, तो निश्चित रूप से कोई नियम/सत्यापन सेट कर सकता है यदि उपयोगकर्ता उस चेकबॉक्स को चेक करता है, लेकिन डिफ़ॉल्ट ब्राउज़र सत्यापन त्रुटियों के संबंध में स्थिरता के बारे में क्या है? एक बार चेकबॉक्स क्लिक होने पर तत्व को "आवश्यक" विशेषता जोड़ने के लिए "सही" होगा? मुझे यहां कोई विकल्प नहीं दिख रहा है। इस पर आपके विचार क्या हैं?एचटीएमएल 5 फॉर्म सत्यापन के लिए सशर्त नियम

उत्तर

3

मुझे नहीं लगता कि आप जावास्क्रिप्ट के बिना ऐसा कर सकते हैं।

जावास्क्रिप्ट के साथ, आप इसे आसानी से पर्याप्त कर सकते हैं।

मैं चेकबॉक्स क्लिक होने के बाद ही required विशेषता जोड़ दूंगा।

वास्तव में, मैं इसे toggled टुकड़ा बना दूंगा, ताकि उपयोगकर्ता इनपुट को अनचेक और अनधिकृत कर सके।

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

+0

"हालांकि, मैं आवश्यक विशेषता के ब्राउज़र के कार्यान्वयन पर भरोसा नहीं होगा" - मैं सहमत हूँ! मैं सोच रहा हूं, अगर मैं जावास्क्रिप्ट का उपयोग करता हूं तो मैं अपनी समस्या का समाधान कर सकता हूं, लेकिन, अगर जावास्क्रिप्ट अक्षम है (बस मान ले रहा है ..), तो मेरे पास कुछ फ़ील्ड के लिए ब्राउजर डिफ़ॉल्ट फॉर्म सत्यापन होगा लेकिन दूसरों के लिए नहीं। जब तक (मुझे पहले इसका उल्लेख नहीं करना चाहिए) मेरे पास HTML में "novalidation" है और इसे जावास्क्रिप्ट के साथ हटा दिया जाएगा, जिसका अर्थ है कि जावास्क्रिप्ट के बिना केवल सर्वर पक्ष सत्यापन होगा .. – Jonas

0

आपको उपलब्ध होने नहीं देशी सत्यापन का अनुकरण करने polyfills उपयोग कर सकते हैं:
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills

+0

शायद कुछ स्क्रिप्ट हैं, लेकिन यदि जेएस अक्षम है, आपके पास कुछ फ़ील्ड के लिए सत्यापन होंगे, न कि दूसरों के लिए .. – Jonas

+0

वैसे भी, आपको सर्वर-साइड सत्यापन करना है। और आपको इस तथ्य को स्वीकार करना होगा कि जेएस को अक्षम किया जा सकता है, और इस मामले में पॉलीफिल काम नहीं करेंगे। लेकिन यह केवल उपयोगकर्ता अनुभव में सुधार कर सकता है, तो ऐसा क्यों नहीं करते? –

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