मैं पिछले छह महीनों से एक साइड-प्रोजेक्ट के रूप में ट्रेनिंग लॉगर ऐप पर काम कर रहा हूँ। जैसा कि आप उम्मीद करेंगे, ऐसे ऐप को न्यूमेरिक इनपुट्स की आवश्यकता होती है।
जब आप किसी कोड एडिटर में ऑटोकंप्लीट का उपयोग करते हैं, तो इनपुट एलिमेंट का डिफ़ॉल्ट प्रकार टेक्स्ट होता है:
<input type="text" />
number प्रकार का एक HTML इनपुट एलिमेंट केवल न्यूमेरिक इनपुट्स स्वीकार करता है। इस न्यूमेरिक इनपुट फ़ील्ड के अंदर अक्षर टाइप करने का प्रयास करें:
आप नहीं कर सकते।
HTML इनपुट एलिमेंट्स जिनका प्रकार टेक्स्ट है, हालांकि, टेक्स्ट और नंबर दोनों स्वीकार करते हैं। इस टेक्स्ट इनपुट फ़ील्ड के अंदर नंबर और अक्षर दोनों टाइप करने का प्रयास करें:
याय, यह काम करता है!
जब मैंने अपने ऐप में रेप्स और वजन के लिए इनपुट की घोषणा की, तो मैंने डिफ़ॉल्ट इनपुट प्रकार को टेक्स्ट से नंबर में नहीं बदला। मैंने इसके बारे में सोचा तक नहीं। डेस्कटॉप कंप्यूटर पर परीक्षण करते समय, नंबर टाइप करना आसान है, इसलिए इससे मुझे कोई परेशानी नहीं हुई।
लेकिन जैसे ही मैंने अपने ऐप को अपने iPhone 6 पर टेस्ट किया, यह स्पष्ट हो गया कि आप शुरुआत से ही सही इनपुट प्रकार का उपयोग क्यों करना चाह सकते हैं।
यदि आपके इनपुट एलिमेंट का प्रकार टेक्स्ट पर सेट है, और आप उस इनपुट फ़ील्ड पर क्लिक करते हैं, तो कम से कम iPhones पर (मुझे संदेह है कि एंड्रॉइड पर भी समान है) तब आपका नेटिव कीबोर्ड पॉप अप होगा। जैसे कि आप किसी को टेक्स्ट मैसेज लिख रहे हों।
इस तरह:
अब, यह नेटिव कीबोर्ड आपको नंबर्स तक पहुंच देता है, लेकिन पहले, आपको 123 बटन पर क्लिक करना होगा। यह एक अनावश्यक कदम जोड़ता है।
एक इनपुट फ़ील्ड के लिए जिसका एकमात्र उद्देश्य रेप्स और उठाए गए वजन की संख्या जोड़ना है, स्मार्टफोन्स पर न्यूमेरिक कीबोर्ड पॉप अप करना ही समझ में आता है।
ऐसा करने के लिए, आप बस निर्दिष्ट करते हैं कि आप चाहते हैं कि आपका इनपुट एलिमेंट न्यूमेरिक इनपुट स्वीकार करे:
इस तरह:
<input type="number" />
और परिणाम (iOS डिवाइस पर):
और बस इतना ही है!