2011-09-03 15 views
57

Possible Duplicate:
How to allow only numeric (0-9) in HTML inputbox using jQuery?की अनुमति दें केवल संख्या एक पाठ बॉक्स

में लिखा जाता है कैसे केवल संख्या इस टेक्स्ट बॉक्स में लिखे जाने की अनुमति देने के लिए?

<input type="text" class="textfield" value="" id="extra7" name="extra7"> 
+4

आप एक संख्या के रूप में क्या श्रेणी करते हैं? क्या ये संख्या '12.3',' -4', 'V',' छः' हैं? –

+8

सुनिश्चित नहीं है कि एक jquery प्रश्न डुप्लिकेट होगा। जावास्क्रिप्ट! = JQuery – Evert

+4

** यह संदर्भित प्रश्न का सटीक डुप्लिकेट ** नहीं है। यह जावास्क्रिप्ट उत्तर को लक्षित करता है जबकि दूसरा एक jQuery उत्तर को लक्षित करता है। विभिन्न दर्शकों, विभिन्न समाधान। –

उत्तर

180

आप onkeypress घटना के लिए सदस्यता ले सकता है:

<input type="text" class="textfield" value="" id="extra7" name="extra7" onkeypress="return isNumber(event)" /> 

और फिर isNumber समारोह को परिभाषित:

function isNumber(evt) { 
    evt = (evt) ? evt : window.event; 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
    if (charCode > 31 && (charCode < 48 || charCode > 57)) { 
     return false; 
    } 
    return true; 
} 

आप action here में देख सकते हैं।

+3

मुझे यकीन नहीं है कि आपके 'if' खंड की व्याख्या कैसे करें। यदि यह 57 से बड़ा है, तो यह हमेशा 31 से बड़ा होता है। मुझे लगता है कि आप कोष्ठक को खत्म कर सकते हैं। – pimvdb

+0

धन्यवाद यह काम कर रहा है। केवल अक्षरों के लिए वर्ण कोड सीमा क्या है? मेरा मतलब है कि मैं केवल – EnexoOnoma

+0

@Giorkouros के एक अलग कार्य में अक्षरों को स्वीकार करने के लिए ऐसा करना चाहता हूं, यहां एएससीआईआईआई तालिका है: http://www.asciitable.com/ अक्षरों से आपका क्या मतलब है इसके आधार पर परिणाम अलग होगा। उदाहरण के लिए यदि आप ए-जेड चाहते हैं, तो सीमा [65, 9 0] है, और ए-जेड [9 7, 122] है। –

28
एचटीएमएल 5 के साथ

आप

<input type="number"> 

तुम भी इनपुट पाठ सीमित करने के लिए एक regex पैटर्न का उपयोग कर सकते हैं कर सकते हैं।

<input type="text" pattern="^[0-9]*$" /> 
+3

यह गैर-संख्यात्मक वर्णों को दर्ज करने से नहीं रोकता है। – MyNameIsKo

+0

@MyNameIsKo यह होना चाहिए, शायद आप ऐसे क्लाइंट का उपयोग कर रहे हैं जो इस तरह की HTML5 सुविधा का समर्थन नहीं करता है? – powtac

+0

यह क्रोम या फ़ायरफ़ॉक्स में काम नहीं करता है। आप गैर-संख्यात्मक वर्णों के सबमिशन सत्यापन का जिक्र कर रहे हैं, जो HTML5 के साथ ठीक से काम करता है। हालांकि, मूल प्रश्न गैर-संख्यात्मक प्रविष्टि को पूरी तरह से रोकने में रूचि रखता था। मुझे यकीन है कि जावास्क्रिप्ट अभी भी ऐसा करने का एकमात्र तरीका है। – MyNameIsKo

13

आप कुछ HTML5 विशेषताओं का भी उपयोग कर सकते हैं, कुछ ब्राउज़र पहले से ही इसका लाभ उठा सकते हैं (type="number" min="0")।

जो कुछ भी आप करते हैं, सर्वर के पक्ष में अपने इनपुट दोबारा जांचना याद रखें: आप क्लाइंट-साइड सत्यापन निष्पादित नहीं कर सकते हैं।

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