दिलचस्प पोस्ट
जेसन मैपिंग एक्सपैशन: प्रकार के लिए कोई उपयुक्त कन्स्ट्रक्टर नहीं मिला : JSON ऑब्जेक्ट से इन्स्तांत नहीं हो सकता महीने के सप्ताह की एनएटी में गणना करें Html.TextBoxFor के लिए शर्त पर आधारित विशेषता को अक्षम करें उपलब्धता के लिए एक HTTP URL को पिंग करने के लिए पसंदीदा जावा तरीका कैसे ठीक से वैश्विक नए और हटाने ऑपरेटरों को बदलने के लिए एंड्रॉइड- त्रुटि: कार्य के लिए निष्पादन विफल ': ऐप: ट्रांसफ़ॉर्म क्लासेसविड्थडेक्सफोर' ट्विटर बूटस्ट्रैप पर आधारित, उत्तरदायी डिजाइन में द्रव या निश्चित ग्रिड प्रणाली Matplotlib में एक subplot के लिए xlim और ylim कैसे सेट करें एक टुकड़ा के अंदर प्रदर्शित टुकड़ा viewpager क्या सीएसएस सामग्री पर .html दस्तावेज़, या .html टुकड़ा प्रदर्शित करना संभव है? आर में क्या "एस 3 तरीके" का अर्थ है? एएसपी.नेट वेब एपीआई कुछ सर्वरों पर केवल पुट के लिए 404 देता है PHP संकलित या व्याख्या की गई है? एसवीजी गोल कोने जावा: एक फ़ाइल से एक सरणी में पूर्णांक पढ़ना

HTML इनपुट टैग को कैसे बनाने के लिए केवल संख्यात्मक मान स्वीकार करते हैं?

मुझे यह सुनिश्चित करने की ज़रूरत है कि एक निश्चित <input> फ़ील्ड में संख्याएं केवल मान मान लेती हैं इनपुट किसी रूप का हिस्सा नहीं है इसलिए इसे सबमिट नहीं किया जाता है, इसलिए प्रस्तुत करने के दौरान मान्य होने का कोई विकल्प नहीं है। मैं चाहता हूं कि उपयोगकर्ता संख्याओं के अलावा किसी भी वर्ण में टाइप करने में असमर्थ हो।

क्या यह हासिल करने के लिए एक साफ तरीका है?

वेब के समाधान से एकत्रित समाधान "HTML इनपुट टैग को कैसे बनाने के लिए केवल संख्यात्मक मान स्वीकार करते हैं?"

आप केवल संख्या प्रविष्टियों को प्रतिबंधित करने के लिए HTML5 इनपुट प्रकार नंबर का उपयोग कर सकते हैं:

 <input type="number" name="someid" /> 

यह केवल HTML5 शिकायत ब्राउज़र में काम करेगा सुनिश्चित करें कि आपके एचटीएमएल दस्तावेज का कार्यप्रणाली है:

<!DOCTYPE html>

पुराने ब्राउज़र में पारदर्शी समर्थन के लिए https://github.com/jonstipe/number-polyfill भी देखें।

सामान्य प्रयोजन के लिए, आप नीचे के रूप में जेएस सत्यापन कर सकते हैं:

 function isNumberKey(evt){ var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; } <input name="someid" type="number" onkeypress="return isNumberKey(event)"/> 

यदि आप दशमलव की अनुमति देना चाहते हैं, तो "इस स्थिति" को बदल दें:

 if (charCode > 31 && (charCode != 46 &&(charCode < 48 || charCode > 57))) 

स्रोत: HTML पाठ इनपुट केवल संख्यात्मक इनपुट की अनुमति देता है

JSFiddle डेमो: http://jsfiddle.net/viralpatel/nSjy7/

आप html5 में पैटर्न विशेषता का भी उपयोग कर सकते हैं:

 <input type="text" name="name" pattern="[0-9]" title="Title" /> 

http://www.pageresource.com/html5/input-validation-tutorial/

यद्यपि, यदि आपका काम html नहीं है, तो मुझे लगता है कि आपको कुछ जावास्क्रिप्ट / jquery का उपयोग करने की आवश्यकता होगी

आप एक <input type="number" /> उपयोग कर सकते हैं यह केवल संख्याओं को इनपुट बॉक्स में दर्ज करने की अनुमति देगा।

उदाहरण: http://jsfiddle.net/SPQY3/

कृपया ध्यान दें कि इनपुट type="number" टैग केवल नए ब्राउज़रों में समर्थित है

फ़ायरफ़ॉक्स के लिए, आप जावास्क्रिप्ट का प्रयोग करके इनपुट को मान्य कर सकते हैं:

http://jsfiddle.net/VmtF5/

 function AllowOnlyNumbers(e) { e = (e) ? e : window.event; var key = null; var charsKeys = [ 97, // a Ctrl + a Select All 65, // A Ctrl + A Select All 99, // c Ctrl + c Copy 67, // C Ctrl + C Copy 118, // v Ctrl + v paste 86, // V Ctrl + V paste 115, // s Ctrl + s save 83, // S Ctrl + S save 112, // p Ctrl + p print 80 // P Ctrl + P print ]; var specialKeys = [ 8, // backspace 9, // tab 27, // escape 13, // enter 35, // Home & shiftKey + # 36, // End & shiftKey + $ 37, // left arrow & shiftKey + % 39, //right arrow & ' 46, // delete & . 45 //Ins & - ]; key = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode; //console.log("e.charCode: " + e.charCode + ", " + "e.which: " + e.which + ", " + "e.keyCode: " + e.keyCode); //console.log(String.fromCharCode(key)); // check if pressed key is not number if (key && key < 48 || key > 57) { //Allow: Ctrl + char for action save, print, copy, ...etc if ((e.ctrlKey && charsKeys.indexOf(key) != -1) || //Fix Issue: f1 : f12 Or Ctrl + f1 : f12, in Firefox browser (navigator.userAgent.indexOf("Firefox") != -1 && ((e.ctrlKey && e.keyCode && e.keyCode > 0 && key >= 112 && key <= 123) || (e.keyCode && e.keyCode > 0 && key && key >= 112 && key <= 123)))) { return true } // Allow: Special Keys else if (specialKeys.indexOf(key) != -1) { //Fix Issue: right arrow & Delete & ins in FireFox if ((key == 39 || key == 45 || key == 46)) { return (navigator.userAgent.indexOf("Firefox") != -1 && e.keyCode != undefined && e.keyCode > 0); } //DisAllow : "#" & "$" & "%" else if (e.shiftKey && (key == 35 || key == 36 || key == 37)) { return false; } else { return true; } } else { return false; } } else { return true; } } 
 <h1>Integer Textbox</h1> <input type="text" autocomplete="off" id="txtIdNum" onkeypress="return AllowOnlyNumbers(event);" /> 
 <input onkeyup="value=isNaN(parseFloat(value))?1000:value" type="number" value="1000" > 

जब कुंजी जारी की जाती है तो onkeyup ट्रिगर होता है

isNaN(parseFloat(value))? जांचता है कि इनपुट मान संख्या नहीं है।

यदि यह कोई संख्या नहीं है तो मान 1000 पर सेट है : यदि यह एक संख्या है तो मान मान पर सेट है

नोट: किसी कारण के लिए यह केवल type="number" साथ कार्य करता है

इसे और भी बाहर निकलने के लिए, आपके पास सीमा भी हो सकती है:

 <input onkeyup="value=isNaN(parseFloat(value))||value<0||value>9000?1000:value" type="number" value="1000" > 

का आनंद लें!

यदि आप एचटीएमएल 5 का उपयोग कर सकते हैं तो आप <input type="number" /> कर सकते हैं, नहीं तो आपको जावास्क्रिप्ट के जरिए ऐसा करना होगा जैसा कि आपने कहा है कि इसे कोडबेहिंड से करने के लिए सबमिट नहीं किया गया है।

 <input id="numbersOnly" onkeypress='validate()' /> function validate(){ var returnString; var text = document.getElementByID('numbersOnly').value; var regex = /[0-9]|\./; var anArray = text.split(''); for(var i=0; i<anArray.length; i++){ if(!regex.test(anArray[i])) { anArray[i] = ''; } } for(var i=0; i<anArray.length; i++) { returnString += anArray[i]; } document.getElementByID('numbersOnly').value = returnString; } 

पीएस ने कोड का परीक्षण नहीं किया, लेकिन टाइपोस के लिए चेक न होने पर यह अधिक या कम सही होना चाहिए: डी यदि आप स्ट्रिंग रिक्त या रिक्त आदि की तरह कुछ और चीजें जोड़ना चाहते हैं, तो आप यह जल्दी कर सकते हैं: डी

मैं थोड़ी देर के लिए इस एक के साथ लड़े। यहां और कहीं और कई समाधान जटिल लग रहा था। यह समाधान HTML के साथ jQuery / javascript का उपयोग करता है

  <input type="number" min="1" class="validateNumber"> $(document).on('change', '.validateNumber', function() { var abc = parseInt($(this).val()); if(isNaN(abc)) { abc = 1; } $(this).val(abc); }); 

मेरे मामले में मैं 1 के न्यूनतम मूल्य के साथ छोटी मात्रा पर नज़र रख रहा था, इसलिए इनपुट टैग में न्यूनतम = "1" और isNa () जांच में एबीसी = 1 है। केवल सकारात्मक संख्याओं के लिए आप उन मानों को 0 से बदल सकते हैं और नकारात्मक संख्याओं के लिए अनुमति देने के लिए बस इनपुट टैग से min = "1" निकाल सकते हैं।

इसके अलावा यह कई बक्से के लिए काम करता है (और उन्हें आईडी से व्यक्तिगत रूप से करने के लिए कुछ लोड समय बचा सकता है), बस "validateNumber" क्लास को जोड़ दें जहां की जरूरत है

व्याख्या

parseInt () मूल रूप से आपके लिए क्या आवश्यकता है, सिवाय इसके कि यह कुछ पूर्णांक मान के बजाए NaN देता है। एक सरल के साथ () यदि आप "फ़ॉलबैक" मान सेट कर सकते हैं जिसे आप सभी मामलों में पसंद करते हैं तो NaN वापस आ जाता है 🙂 इसके अलावा डब्लू 3 में कहा गया है कि एनएएन का वैश्विक संस्करण जांचने से पहले कास्ट टाइप करेगा जो कुछ अतिरिक्त प्रूफ़िंग देता है (नंबर.आईएसएनएएन ()) ऐसा नहीं करता है। सर्वर / बैकेंड को भेजे गए किसी भी मान को अभी भी मान्य होना चाहिए!

कैसे <input type="number"...> का उपयोग करने के बारे में?

http://www.w3schools.com/tags/tag_input.asp

इसके अलावा, यहां एक सवाल है जो सत्यापन के लिए जावास्क्रिप्ट का उपयोग करने के कुछ उदाहरण हैं ।

अपडेट: बेहतर प्रश्न से जुड़े (धन्यवाद अलेक्ज़ल्म)

 <input type="text" name="myinput" id="myinput" onkeypress="return isNumber(event);" /> 

और जेएस में:

 function isNumber(e){ e = e || window.event; var charCode = e.which ? e.which : e.keyCode; return /\d/.test(String.fromCharCode(charCode)); } 

या आप इसे एक जटिल बू उपयोगी तरीके से लिख सकते हैं:

 <input onkeypress="return /\d/.test(String.fromCharCode(((event||window.event).which||(event||window.event).which)));" type="text" name="myinput" id="myinput" /> 

नोट : क्रॉस-ब्राउज़र और शाब्दिक में regex

यदि पूर्णांक सेट 0 नहीं है

 <input type="text" id="min-value" /> $('#min-value').change(function () { var checkvalue = $('#min-value').val(); if (checkvalue != parseInt(checkvalue)) $('#min-value').val(0); }); 

स्वीकृत जवाब:

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

यह अच्छा है, लेकिन सही नहीं है यह मेरे लिए काम करता है, लेकिन मुझे एक चेतावनी मिलती है कि if-statement को सरलीकृत किया जा सकता है

तो यह इस तरह दिखता है, जिस तरह से सुंदर है:

 function isNumberKey(evt){ var charCode = (evt.which) ? evt.which : event.keyCode; return !(charCode > 31 && (charCode < 48 || charCode > 57)); } 

मूल पोस्ट पर टिप्पणी कर सकते हैं, लेकिन ऐसा करने के लिए मेरी प्रतिष्ठा बहुत कम है (बस इस खाते को बनाया है)।

आप विशेषता प्रकार = 'संख्या' के साथ <input> टैग का उपयोग कर सकते हैं।

उदाहरण के लिए आप <input type='number' /> उपयोग कर सकते हैं

यह इनपुट फ़ील्ड केवल संख्यात्मक मानों की अनुमति देता है आप इस फ़ील्ड द्वारा स्वीकार किए जाने वाले न्यूनतम मूल्य और अधिकतम मान भी निर्दिष्ट कर सकते हैं।

जावास्क्रिप्ट भाषा का उपयोग कर कृपया अपने वेब पेज पर पाठ इनपुट तत्व के मूल्य के क्रॉस-ब्राउज़र फ़िल्टर का मेरा प्रोजेक्ट देखें: इनपुट कुंजी फ़िल्टर । आप मान को एक पूर्णांक संख्या, एक फ्लोट संख्या के रूप में फ़िल्टर कर सकते हैं या कस्टम फ़िल्टर लिख सकते हैं, जैसे कि फ़ोन नंबर फ़िल्टर। एक पूर्णांक संख्या इनपुट के कोड का उदाहरण देखें:

 <!doctype html> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Input Key Filter Test</title> <meta name="author" content="Andrej Hristoliubov anhr@mail.ru"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <!-- For compatibility of IE browser with audio element in the beep() function. https://www.modern.ie/en-us/performance/how-to-use-x-ua-compatible --> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <link rel="stylesheet" href="https://rawgit.com/anhr/InputKeyFilter/master/InputKeyFilter.css" type="text/css"> <script type="text/javascript" src="https://rawgit.com/anhr/InputKeyFilter/master/Common.js"></script> <script type="text/javascript" src="https://rawgit.com/anhr/InputKeyFilter/master/InputKeyFilter.js"></script> </head> <body> <h1>Integer field</h1> <input id="Integer"> <script> CreateIntFilter("Integer", function(event){//onChange event inputKeyFilter.RemoveMyTooltip(); var elementNewInteger = document.getElementById("NewInteger"); var integer = parseInt(this.value); if(inputKeyFilter.isNaN(integer, this)){ elementNewInteger.innerHTML = ""; return; } //elementNewInteger.innerText = integer;//Uncompatible with FireFox elementNewInteger.innerHTML = integer; } //onblur event. Use this function if you want set focus to the input element again if input value is NaN. (empty or invalid) , function(event){ inputKeyFilter.isNaN(parseInt(this.value), this); } ); </script> New integer: <span id="NewInteger"></span> </body> </html> 

मैं इसका इस्तेमाल ज़िप कोड के लिए, त्वरित और आसान।

 <input type="text" id="zip_code" name="zip_code" onkeypress="return event.charCode > 47 && event.charCode < 58;" pattern="[0-9]{5}" required></input> 

इस कोड का उपयोग करते समय आप मोज़िला फ़ायरफ़ॉक्स में "बैकस्पेस बटन" का प्रयोग नहीं कर सकते हैं, तो आप केवल क्रोम 47 और& इवेंट.चार्कोल्ड <58; "pattern =" [0- 9] {5} "आवश्यक में बैकस्पेस का उपयोग कर सकते हैं>

http://www.texotela.co.uk/code/jquery/numeric/ लियो वी के लिए संख्यात्मक इनपुट क्रेडिट इस और निश्चित रूप से उल्लेख करने के लिए TexoTela एक परीक्षण पृष्ठ के साथ

एकाधिक अंक स्वीकार करने के लिए "+" को आरजीईएक्स की स्थिति में जोड़ना बेहतर है (न केवल एक अंक):

<input type="text" name="your_field" pattern="[0-9]+">

कृपया इनपुट फ़ील्ड के साथ ही इस कोड का प्रयास करें

 <input type="text" name="price" id="price_per_ticket" class="calculator-input" onkeypress="return event.charCode >= 48 && event.charCode <= 57"></div> 

यह ठीक काम करेगा