2012-07-02 11 views
21

नीचे दिया गया कोड HTML फ़ॉर्म से है। इनपुट एक पूर्णांक माना जाता है, तो आप एक्सएचटीएमएल उपयोग कर रहे हैं मैं "प्रकार 'को बदलने की जरूरत है?पूर्णांक के लिए HTML फॉर्म के लिए इनपुट प्रकार

<div class="friend2title"> 
    <label for="url">Add points:</label> 
</div> 
<div class="friend2field"> 
    <input name="state" type="text" id="state" maxlength="150"> 
</div> 
+0

आपको किस ब्राउज़र संस्करण का समर्थन करने की आवश्यकता है? – Eric

उत्तर

20

आप एचटीएमएल 5 का उपयोग कर रहे हैं, तो आप इनपुट प्रकार number उपयोग करना चाहिए। या html 4 , इनपुट प्रकार text होना चाहिए

+0

और उसके बाद सत्यापित करें कि आपको वास्तव में * एक संख्या मिली है। हाँ। – uotonyh

+2

ठीक है ... मैं कैसे बता सकता हूं कि मैं HTML 5 का उपयोग कर रहा हूं? – John

+2

@ जॉन आप सिर्फ 'संख्या' का उपयोग कर सकते हैं; यह निश्चित रूप से एचटीएमएल 4 सत्यापन विफल हो जाएगा लेकिन एचटीएमएल 4 ब्राउज़र इसे 'टेक्स्ट' टाइप' के रूप में मानेंगे। – Neil

0

नहीं, यह इनपुट के डेटा प्रकार के बारे में नहीं है यह type of control to create निर्दिष्ट करता है:।।

प्रकार = पाठ | पासवर्ड | चेकबॉक्स | रेडियो | प्रस्तुत | रीसेट | फ़ाइल | छुपा | छवि | बटन [सीआई] यह विशेषता contr के प्रकार को निर्दिष्ट करती है बनाने के लिए ओएल। इस विशेषता के लिए डिफ़ॉल्ट मान "पाठ" है।

3

एचटीएमएल 5 से पहले इनपुट type = "text" बस एक क्षेत्र, मुक्त पाठ सम्मिलित करने के लिए क्या आप इसे चाहते हैं की परवाह किए बिना मतलब है। यह मान्यताओं का काम है कि उपयोगकर्ता को वैध संख्या

यदि आप HTML5 का उपयोग कर रहे हैं, तो आप नए इनपुट प्रकारों का उपयोग कर सकते हैं, जिनमें से एक संख्या स्वचालित रूप से मान्य है पाठ इनपुट, और इसे

ध्यान में रखें, हालांकि यदि आप एक सर्वर साइड ऐप बना रहे हैं (उदाहरण के लिए PHP) तो आपको अभी भी उस तरफ इनपुट को मान्य करना होगा (सुनिश्चित करें कि यह वास्तव में एक संख्या है) क्योंकि एचटीएमएल को हैक करना और इनपुट प्रकार बदलना बहुत आसान है, ब्राउज़र सत्यापन को हटा रहा है

-4

भले ही आप इनपुट के लिए नंबर स्वीकार करना चाहते हैं , मैं text प्रकार का उपयोग करने की सलाह दूंगा।

<input type="text" name"some-number" /> 

ग्राहक-पक्ष कुछ jQuery सत्यापन को चलाने के लिए इसे सत्यापित करने के लिए चलाता है।

फिर अपने सर्वर साइड कोड में, सत्यापित करने के लिए कुछ सत्यापन चलाएं, वास्तव में यह एक संख्यात्मक मान है।

19
<input type="number" step="1" ... 

step विशेषता जोड़कर, आप पूर्णांक में इनपुट प्रतिबंधित करते हैं।

बेशक आपको हमेशा सर्वर पर भी मान्य होना चाहिए। ध्यान से नियंत्रित स्थितियों के अलावा, किसी ग्राहक से प्राप्त सभी चीज़ों को संदिग्ध माना जाना चाहिए।

+3

का अनुरोध कैसे करें यह ध्यान दिया जाना चाहिए कि यह उत्तर केवल HTML5 –

+1

के लिए मान्य है आपको फ्लोट मैन्युअल रूप से –

+1

@PetrPeller में प्रवेश करने से नहीं रोकता है यह निर्भर हो सकता है। [एमडीएन आवेग संख्या] से (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number#Allowing_decimal_values) 'दशमलव मानों को अनुमति देना संख्या इनपुट वाले एक समस्या यह है कि उनका चरण आकार डिफ़ॉल्ट रूप से 1 है - यदि आप दशमलव के साथ संख्या दर्ज करने का प्रयास करते हैं, जैसे "1.0", तो इसे अमान्य माना जाएगा। यदि आप एक मान दर्ज करना चाहते हैं जिसके लिए दशमलव की आवश्यकता है, तो आपको इसे चरण मान में प्रतिबिंबित करना होगा (उदा। चरण = "0.01" दशमलव को दो दशमलव स्थानों तक अनुमति देने के लिए)। यहां एक साधारण उदाहरण दिया गया है: ' – PhoneixS

9

यह मदद कर सकता है:

<input type="number" step="1" pattern="\d+" /> 

step सुविधा के लिए है (और एक अन्य पूर्णांक पर सेट किया जा सकता है), लेकिन pattern कुछ वास्तविक लागू करने से करता है।

ध्यान दें कि pattern पूरी अभिव्यक्ति से मेल खाता है, इसलिए इसे ^\d+$ के रूप में व्यक्त करना आवश्यक नहीं था।

यहां तक ​​कि इस बाहर तंग नियमित अभिव्यक्ति के साथ

, क्रोम और फायरफॉक्स के कार्यान्वयन, दिलचस्प e यहाँ के लिए अनुमति देने के साथ ही ऋणात्मक संख्याओं के लिए -, और क्रोम (संभवतः वैज्ञानिक संकेतन के लिए) भी . लिए अनुमति देता है, जबकि फ़ायरफ़ॉक्स जब तक खारिज करने में तंग है . के बाद 0 के बाद ही है। (फ़ायरफ़ॉक्स फ़ील्ड को खोने वाले इनपुट पर लाल रंग के रूप में चिह्नित करता है जबकि क्रोम आपको पहले स्थान पर अस्वीकृत मान इनपुट नहीं करने देता है।)

चूंकि, दूसरों द्वारा देखा गया है, किसी को हमेशा सर्वर पर मान्य होना चाहिए (या ग्राहक भी, क्लाइंट पर स्थानीय रूप से मूल्य का उपयोग करते हुए या सर्वर को राउंडट्रिप से उपयोगकर्ता को रोकने की इच्छा रखते हैं)।

+0

जबकि क्रोम फ़ायरफ़ॉक्स में नहीं है, 'पैटर्न' जोड़ना सुनिश्चित करता है कि एक आंशिक भाग के किसी भी उपयोग को फ़ील्ड को अवैध के रूप में चिह्नित किया जाता है। –

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