सख्त मोड से फ़ॉर्म के स्कीमा को अधिकार दें
सख्त मोड डिफ़ॉल्ट रूप से बंद है, इसलिए स्कीमा जवाबों पर निर्णय देने के बजाय जनरेशन का मार्गदर्शन करता है। इसे प्रति फ़ॉर्म चालू करें तो बिना घोषित फ़ील्ड अस्वीकृति बन जाती है, और फ़ाइल फ़ील्ड दोनों हालत में अधिकार रखते हैं।
यह पोस्ट मशीन द्वारा अनुवादित है। अंग्रेज़ी में मूल पोस्ट पढ़ें

सख्त मोड एक फ़ॉर्म पर लगा एक स्विच है, और फ़ॉर्म बनते समय वह बंद रहता है। बंद होना कोई चूक नहीं: लगभग सभी फ़ॉर्म वहीं से शुरू होते हैं, क्योंकि जिस फ़ॉर्म ने कभी सबमिशन नहीं पाया वह अपनी बनावट अभी जानता ही नहीं। स्विच जो बदलता है वह यह है कि स्कीमा किसके लिए है।
चालू करने पर क्या बदलता है
सख्त मोड बंद होने पर स्कीमा जनरेशन का मार्गदर्शन करता है। यह तय करता है कि बिल्डर का प्रीव्यू कौन-से फ़ील्ड दिखाए और जनरेट किया गया कंपोनेंट क्या रेंडर करे, और इसी के आधार पर FormFlow सीखता है जब वह किसी देखे गए फ़ील्ड को अपनाने का प्रस्ताव देता है। पर यह जवाबों पर निर्णय नहीं देता। एक अतिरिक्त कुंजी उल्लंघन नहीं है: वह जवाब के रूप में पहुँचती है।
सख्त मोड चालू होने पर स्कीमा दोनों दिशाओं में अनुबंध बन जाता है। घोषित फ़ील्ड जो नहीं पहुँचता, या अपने नियम पूरे नहीं करता, अस्वीकार हो जाता है। बिना घोषित कुंजी जो पहुँचती है, वह भी अस्वीकार होती है — वही द्वार, वही फ़ील्ड-आधारित त्रुटि, और संदेश जो कहता है कि फ़ील्ड घोषित नहीं था। यही सममिति पूरा उद्देश्य है: सख्त फ़ॉर्म चुपचाप ऐसे जवाब जमा नहीं कर सकता जो उसने कभी माँगे नहीं। सख्त मोड v1.0.0 के साथ आया, और API संदर्भ उस अस्वीकृति को बताता है जो वह लौटाता है।
फ़ील्ड नियम बंद शब्दावली से आते हैं
सख्त मोड ही वह अकेला मोड है जिसमें फ़ील्ड नियम लागू होते हैं। फ़ील्ड नियम एक फ़ील्ड पर अतिरिक्त बंधन है, उससे आगे जो उसका प्रकार पहले से मानता है, और इसे उसी सूची से चुना जाता है जो FormFlow देता है और उस प्रकार तक सीमित रखता है। आप सूची से चुनते हैं; नियम कभी लिखते नहीं। कोई फ़ॉर्म FormFlow से ऐसी जाँच नहीं चलवा सकता जो FormFlow ने नहीं लिखी।
फ़ील्ड प्रकार | चुनने योग्य नियम | सीमाएँ |
|---|---|---|
टेक्स्ट | केवल अक्षर; अक्षर और अंक; अक्षर, अंक, डैश और अंडरस्कोर; केवल सादा ASCII; छोटे अक्षर; बड़े अक्षर; एक UUID; एक ULID; एक IP पता; एक MAC पता; हेक्स रंग | न्यूनतम और अधिकतम लंबाई |
टेक्स्टएरिया | केवल सादा ASCII; मान्य JSON | न्यूनतम और अधिकतम लंबाई |
संख्या | एक पूर्ण संख्या | न्यूनतम और अधिकतम मान |
ईमेल, फ़ोन | कोई नहीं | न्यूनतम और अधिकतम लंबाई |
चयन सूची, एकल चयन | कोई नहीं | कोई नहीं |
इस तालिका पर दो बातें। सीमा एक पूर्ण संख्या है, अधिकतम छह अंक। और विकल्प-सूची वाला प्रकार कोई नियम नहीं लेता: उसकी विकल्प-सूची ही बंधन है, और सख्त मोड हर जवाब को उसी के विरुद्ध जाँचता है।
जहाँ सख्त मोड आपका चुनाव नहीं
घोषित फ़ाइल फ़ील्ड हर फ़ॉर्म पर अधिकार रखता है, सख्त मोड चालू हो या न हो। इसे हर बार प्रकार, आकार और संख्या पर जाँचा जाता है, और यह सख्ती से अस्वीकार करता है। यह जानबूझकर है: अपलोड डिस्क पर बाइट्स हैं, इसलिए इसे ऐसी सेटिंग पर नहीं छोड़ा जा सकता जो डिफ़ॉल्ट से बंद हो। दूसरा अपवाद ग्रेडेड फ़ॉर्म है: उत्तर-कुंजी वाला फ़ॉर्म हमेशा सख्त मोड में होता है और केवल होस्ट किया गया पेज हो सकता है, क्योंकि एम्बेड किया गया मार्कअप उसे न्यायपूर्वक दिखा भी नहीं सकता और ग्रेड भी नहीं कर सकता।
घबराहट से नहीं, सबूत से तय करें
इसे चालू करने से पहले उम्मीदवार कॉन्फ़िगरेशन को फ़ॉर्म के अपने इतिहास पर दोबारा चलाएँ। FormFlow वे सबमिशन भी रखता है जो फ़ॉर्म ने स्वीकार किए और वे अस्वीकृत सबमिशन भी जो उसने लौटाए, इसलिए यह पुनरावृत्ति दिखा सकती है कि बदलाव की कीमत क्या होगी, इससे पहले कि कोई उसे चुकाए। यही कारण है कि सख्त मोड देर से, फ़ॉर्म में ट्रैफ़िक आने के बाद भी चालू किया जा सकता है।
शांत रहने का दूसरा कारण: अस्वीकृति अदृश्य नुकसान नहीं है। अस्वीकृत सबमिशन ऐसे रिकॉर्ड के रूप में रखा जाता है जिस पर आप कार्रवाई कर सकते हैं, वितरित नहीं होता, गणनाकृत सबमिशन नहीं बनता, और सेटिंग ठीक होते ही वापस पाया जा सकता है। सख्त मोड स्कीमा सही करने का दाँव बढ़ाता है; गलती को स्थायी नहीं बनाता।
जानने योग्य सीमाएँ
डिफ़ॉल्ट से बंद। यदि आपको याद नहीं कि आपने इसे चालू किया था, तो वह बंद है।
यह केवल जवाबों पर निर्णय देता है। अनुमत स्रोत सूची और अनुरोध की बनावट हर फ़ॉर्म पर जाँची जाती है, सख्त हो या न हो।
घोषित फ़ाइल फ़ील्ड दोनों हालत में जाँचे जाते हैं, इसलिए बिना अपलोड पास हुआ सख्त-मोड परीक्षण फ़ाइल के बारे में कुछ सिद्ध नहीं करता।
फ़ील्ड नियम केवल सख्त मोड में लागू होते हैं। किसी फ़ॉर्म को सख्त मोड से बाहर निकालना चुपचाप उसके लिए चुना गया हर नियम लागू करना बंद कर देता है।
ग्रेडेड फ़ॉर्म सख्त मोड छोड़ नहीं सकता और एम्बेड नहीं हो सकता, इसलिए उसका स्कीमा पहले सबमिशन से पहले तय करें।