2 पॉइंट द्वारा GN⁺ 2024-10-29 | 1 टिप्पणियां | WhatsApp पर शेयर करें

HTML फ़ॉर्म वैलिडेशन का कम उपयोग

  • HTML फ़ॉर्म में एक शक्तिशाली validation mechanism होता है, लेकिन इसका ज्यादा उपयोग नहीं होता। बहुत से लोग इसके बारे में अच्छी तरह नहीं जानते। इसकी वजह design की कमी हो सकती है।

attributes, methods, और properties

  • खाली input को रोकने के लिए required attribute जोड़ा जा सकता है।
  • input पर constraints जोड़ने के तीन तरीके हैं:
    • खास type attribute values का उपयोग: "email", "number", "url"
    • "pattern" या "maxlength" जैसे दूसरे input attributes का उपयोग
    • setCustomValidity DOM method का उपयोग: यह सबसे शक्तिशाली तरीका है, जिससे मनचाहा validation logic बनाया जा सकता है और जटिल मामलों को संभाला जा सकता है।

imperative API की बारीकियाँ

  • setCustomValidity API सिर्फ method के रूप में उपलब्ध है, इसलिए इसका उपयोग असुविधाजनक है।
  • उदाहरण के लिए, input खाली होने पर form submit को रोकने के लिए required attribute जैसी functionality लागू की जा सकती है।
  • शुरुआती rendering के समय अगर input खाली हो, तो उसे invalid सेट करना पड़ता है।

boilerplate की समस्या

  • शुरुआती value को validate करने का तरीका झंझटभरा है।
  • validation logic onChange handler और शुरुआती rendering चरण, दोनों में दोहराया जाता है।
  • useRef + useLayoutEffect + onChange का संयोजन जटिल है।

क्या गायब है

  • custom-validity attribute की जरूरत है।
  • declarative framework में input validation को शक्तिशाली तरीके से परिभाषित किया जा सकता है।

asynchronous validation की ताकत

  • ऐसे मामले संभाले जा सकते हैं जहाँ username input तभी valid होना चाहिए जब वह पहले से उपयोग में न हो
  • इसके लिए server पर asynchronous call और एक intermediate state की जरूरत होती है।

implementation

  • username की uniqueness जाँचने के लिए verifyUsername function का उपयोग किया जाता है।
  • server request state को manage करने के लिए useQuery का उपयोग किया जाता है।
  • asynchronous validation flow को समझाने के लिए customValidity attribute का उपयोग किया जाता है।

password confirmation form

  • ऐसा form implement किया जाता है जिसमें दर्ज किए गए password को दोबारा दर्ज करना होता है।
  • validation के लिए यह जाँचा जाता है कि दोनों input fields एक-दूसरे से मेल खाते हैं या नहीं।

निष्कर्ष

  • setCustomValidity विभिन्न validation आवश्यकताओं को पूरा कर सकता है।
  • एक शक्तिशाली API ही असली ताकत देता है।
  • उम्मीद है कि यह सुविधा HTML spec में जोड़ी जाएगी।

GN⁺ की संक्षिप्त जानकारी

  • HTML फ़ॉर्म validation शक्तिशाली है, लेकिन इसका सही उपयोग कम होता है। इसकी एक वजह API की जटिलता हो सकती है।
  • setCustomValidity method जटिल validation logic को संभालने के लिए एक शक्तिशाली tool है।
  • यह asynchronous validation जैसे जटिल scenarios को संभालने का तरीका प्रस्तुत करता है।
  • यह लेख developers को HTML फ़ॉर्म validation का बेहतर उपयोग करने में मदद देने वाली उपयोगी जानकारी देता है।

1 टिप्पणियां

 
GN⁺ 2024-10-29
Hacker News की राय
  • वेब ब्राउज़र अब भी बिल्ट-इन HTML वैलिडेशन संदेशों की स्टाइल बदलने नहीं देते, और Chrome तथा Firefox OS प्लेटफ़ॉर्म UI दिशानिर्देशों का पालन नहीं करते, जिससे प्रोजेक्ट की दृश्य शैली से टकराव होता है

    • Chrome पहले vendor-prefixed pseudo-element selectors का उपयोग करके वैलिडेशन संदेशों की स्टाइल बदलने देता था, लेकिन यह फीचर हटा दिया गया है
    • HTML combobox और <select multiple> के अप्रभावी उपयोग को लेकर शिकायत है
  • कुछ type attribute मान (जैसे: "email", "number", "url") इस्तेमाल करने से मोबाइल पर उपयुक्त keyboard ट्रिगर होता है, जिससे user experience काफ़ी बेहतर हो सकता है

  • स्पेसिफिकेशन लिखने वाले लोग वास्तविक उपयोग से कटे हुए लगते हैं; सरल चीज़ों के लिए यह ठीक है, लेकिन जटिल forms में खुद बनाना बेहतर है

  • forms की बुनियादी सरलता को नज़रअंदाज़ करने के अपने अनुभव पर अफ़सोस है, और किसी दूसरे का दृष्टिकोण साझा करने के लिए धन्यवाद

  • जब checkbox के साथ label हो, तो label में for attribute जोड़ने का अनुरोध है ताकि label पर क्लिक करके checkbox को सक्षम/अक्षम किया जा सके

  • React का उपयोग न करने वाला एक सरल उदाहरण दिया गया है

  • HTML form validation बेहतरीन है, लेकिन Firefox for Android में इसके काम न करने की एक बड़ी समस्या है

  • कई frameworks और libraries स्टाइल किए जा सकने वाले validation features देते हैं, इसलिए बेवजह मेहनत करने की ज़रूरत नहीं है

  • validation का अत्यधिक उपयोग न करने में सावधानी बरतनी चाहिए

    • Groupon refund के समय "कम से कम 15 शब्द" शर्त के कारण HTML जाँचना पड़ा था
    • validation pattern किसी भी punctuation की अनुमति नहीं देता
  • 2FA input में type=password का गलत उपयोग करने वाली साइटें password managers और browsers को भ्रमित करती हैं