HTML formatında mətni daxil etmək yalnız nömrələri daxil etməyə imkan verir

Yalnızca sayısız tuş vuruşlarına (plus ".") İmkan verən HTML mətn girişini ( <input type=text /> ) təyin etmək üçün sürətli bir yol varmı?

691
22 янв. Jan 22-də Julius A tərəfindən təyin olundu 2009-01-22 17:36 '09 at 17:36 2009-01-22 17:36
@ 59 cavab
  • 1
  • 2

Javascript

Qeyd Bu yenilənmiş cavabdır. Aşağıdakı şərhlər əsas kodlarla səhv olan köhnə versiyaya aiddir.

Aşağıdakı setInputFilter olan setInputFilter funksiyası, müxtəlif rəqəmsal filtrelər daxil olmaqla, <input> mətn üçün hər hansı bir giriş filtresindən istifadə etməyə imkan verir. Kopyala + Paste, Sürükle + Bırak, klaviatura qısa yolları, kontekst menyusu əməliyyatları, qeyri-yazılı düymələr, kursor mövqeyi, bütün klaviatura düzəlişləri və IE 9-dan başlayan bütün brauzerlər düzgün idarə ediləcək. Xatırladaq ki, hələ bir server tərəfi yoxlamasını yerinə yetirmək lazımdır!

JSFiddle'de özünüzü sınayın .

 // Restricts input for the given textbox to the given inputFilter. function setInputFilter(textbox, inputFilter) { ["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", "drop"].forEach(function(event) { textbox.addEventListener(event, function() { if (inputFilter(this.value)) { this.oldValue = this.value; this.oldSelectionStart = this.selectionStart; this.oldSelectionEnd = this.selectionEnd; } else if (this.hasOwnProperty("oldValue")) { this.value = this.oldValue; this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd); } }); }); } 

İstifadə edin:

 // Restrict input to digits and '.' by using a regular expression filter. setInputFilter(document.getElementById("myTextBox"), function(value) { return /^\d*\.?\d*$/.test(value); }); 

Bəzi giriş filtrlərindən istifadə edə bilərsiniz:

  • Integer dəyərlər (həm müsbət, həm də mənfi):
    /^-?\d*$/.test(value)
  • Integer dəyərlər (yalnız müsbət):
    /^\d*$/.test(value)
  • Integer dəyərlər (müsbət və müəyyən bir limitə qədər):
    /^\d*$/.test(value) (value === "" || parseInt(value) <= 500)
  • Üzən nöqtə dəyərləri (onlu və separatçı ayırdı):
    /^-?\d*[.,]?\d*$/.test(value)
  • Valyuta dəyərləri (yəni iki decimal yerdən çox olmamalıdır):
    /^-?\d*[.,]?\d{0,2}$/.test(value)
  • Onaltılıq dəyərlər:
    /^[0-9a-f]*$/i.test(value)

Jquery

Bunun bir jQuery versiyası var. Bu cavabı gör və ya özünüzü JSFiddle'de sınayın .

HTML 5

HTML 5, <input type="number"> ( Spesifikasiyası bax) ilə öz həllini tapmışdır , lakin brauzerinizin dəstəyi dəyişdiyini qeyd edin:

  • Çox brauzerlər daxil olduqda yalnız giriş formasını təqdim edərkən yoxlayın.
  • Çox mobil brauzerlər step , minmax xüsusiyyətlərini dəstəkləmir.
  • Chrome (versiya 71.0.3578.98) hələ də istifadəçiyə sahəsində eE simvollarını yazmağa imkan verir. Bu suala da baxın.
  • Firefox (versiya 64.0) və Edge (EdgeHTML versiyası 17.17134) hələ də istifadəçiyə sahəsində hər hansı bir mətn daxil etməyə imkan verir.

W3schools.com saytında özünüzü sınayın .

Daha qabaqcıl scan variantları

Digər bir test parçaları etmək istəyirsinizsə, rahat ola bilər:

956
22 янв. Cavab Jan 22 verildi 2009-01-22 17:37 '09 at 17:37 'da 2009-01-22 17:37

Bu DOM istifadə edin

 <input type='text' onkeypress='validate(event)' /> 
border=0

Və bu skript

 function validate(evt) { var theEvent = evt || window.event; // Handle paste if (theEvent.type === 'paste') { key = event.clipboardData.getData('text/plain'); } else { // Handle key press var key = theEvent.keyCode || theEvent.which; key = String.fromCharCode(key); } var regex = /[0-9]|\./; if( !regex.test(key) ) { theEvent.returnValue = false; if(theEvent.preventDefault) theEvent.preventDefault(); } } 
247
22 янв. cavab verildi geowa4 Jan 22 2009-01-22 17:55 '09 5:55 pm 2009-01-22 17:55

Uzun müddət yaxşı cavab axtarırdım və biz çox ürəyincə <input type="number" , amma bunlardan başqa, bu 2 düşündüyüm ən qısa yollardır:

 <input type="text" onkeyup="this.value=this.value.replace(/[^\d]/,'')"> 

Silinməzdən əvvəl split ikinci göstərən qəbuledilməz sembolü sevməsəniz, aşağıdakı üsul mənim həllidir. Hər növ naviqasiya və qısametrajlı klaviatura növlərindən qaçınmaq üçün çoxsaylı əlavə şərtlərə diqqət yetirin. Kimsə bunu necə bilirsə, bizə bildirin!

 <input type="text" onkeydown="return ( event.ctrlKey || event.altKey || (47<event.keyCode  event.keyCode<58  event.shiftKey==false) || (95<event.keyCode  event.keyCode<106) || (event.keyCode==8) || (event.keyCode==9) || (event.keyCode>34  event.keyCode<40) || (event.keyCode==46) )"> 
118
04 авг. user235859 tərəfindən verilmiş cavab 04 aug. 2010-08-04 12:00 '10 saat 12:00 'da 2010-08-04 12:00

Və mənim üçün böyük bir nümunədir:

 function validateNumber(event) { var key = window.event ? event.keyCode : event.which; if (event.keyCode === 8 || event.keyCode === 46) { return true; } else if ( key < 48 || key > 57 ) { return false; } else { return true; } }; 

Həm də əsas mətbuat hadisəsinə qoşulur.

 $(document).ready(function(){ $('[id^=edit]').keypress(validateNumber); }); 

Və HTML:

 <input type="input" id="edit1" value="0" size="5" maxlength="5" /> 

Burada jsFiddle nümunəsidir

53
22 мая '10 в 17:39 2010-05-22 17:39 Cavab 22 may 2010-cu il tarixində Vasil tərəfindən 17:39, 2010-05-22 17:39

HTML5 sizin üçün doğru səslənən bir <input type=number> var. Hal-hazırda yalnız Opera dəstəklənir, lakin bir JavaScript proqramı olan bir layihə var.

45
22 янв. Cavab Ms2ger Jan 22 verilir 2009-01-22 21:09 '09 at 09:09 PM 2009-01-22 21:09

Burada tam bir ədədi verən sadə bir, lakin daha çox:

41
03 марта '15 в 21:05 2015-03-03 21:05 Cavab billynoah'a verildi 03 mart ' da 21:05

Cavabların çoxu əsas hadisələrin istifadəsində zəifdir .

Bir çox cavablar, klaviatura makrolarını, kopyalayıp yapıştırmayı və daha çox arzuolunmaz davranışları istifadə edərək, mətn seçimlərini etmək bacarığını məhdudlaşdırır, digərləri pulemyotlarla sinekləri öldürən xüsusi jQuery plaginlərinə asılı görünürlər.

Bu sadə həll mənim üçün ən yaxşı vasitədir, giriş mexanizmindən asılı olmayaraq (tuş vuruşu, kopyala + yapışdır, hüququ kopyala + yapışdırıb, mətnə ​​səslənmə və s.). Bütün mətn seçim klaviatura makroları hələ də işləyəcək və bu hətta qeyri-rəqəmli dəyərləri skriptə təyin etmək qabiliyyətini məhdudlaşdırır.

 function forceNumeric(){ var $input = $(this); $input.val($input.val().replace(/[^\d]+/g,'')); } $('body').on('propertychange input', 'input[type="number"]', forceNumeric); 
40
27 апр. cavab cümə axşamı 27 Aprel verilir 2015-04-27 20:30 '15 saat 20:30 'da 2015-04-27 20:30

Burada qeyd olunan iki cavabın birləşməsindən istifadə etməyə qərar verdim

<input type="number" />

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

<input type="text" onkeypress="return isNumberKey(event);">

38
12 марта '13 в 22:41 2013-03-12 22:41 Cavab Mahendra Liya tərəfindən 12 Mart 2013, saat 10:41 da verilir

HTML5, müntəzəm ifadələri dəstəkləyir, belə ki, istifadə edə bilərsiniz:

 <input id="numbersOnly" pattern="[0-9.]+" type="text"> 

Xəbərdarlıq Bəzi brauzerlər hələ bunu bilmirlər.

30
02 сент. cavab verildi james.garriss 02 Sentyabr 2011-09-02 15:52 '11 at 15:52 2011-09-02 15:52

Javascript

 function validateNumber(evt) { var e = evt || window.event; var key = e.keyCode || e.which; if (!e.shiftKey  !e.altKey  !e.ctrlKey  // numbers key >= 48  key <= 57 || // Numeric keypad key >= 96  key <= 105 || // Backspace and Tab and Enter key == 8 || key == 9 || key == 13 || // Home and End key == 35 || key == 36 || // left and right arrows key == 37 || key == 39 || // Del and Ins key == 46 || key == 45) { // input is VALID } else { // input is INVALID e.returnValue = false; if (e.preventDefault) e.preventDefault(); } } 

İsteğe bağlı olaraq virgül, dövr və eksi (, .-)

  // comma, period and minus, . on keypad key == 190 || key == 188 || key == 109 || key == 110 || 

HTML

 <input type="text" onkeydown="validateNumber(event);"/ > 
16
27 авг. Cavab patrick 27 aug. 2012-08-27 16:21 '12 at 4:21 pm 2012-08-27 16:21

2 həll:

Formanın qiymətləndirmə vasitəsini istifadə edin (məsələn, jQuery qiymətləndirmə plugin ilə )

Onblur hadisəsində (yəni istifadəçi sahəni tərk edərkən) giriş sahəsindəki normal bir ifadə ilə yoxlayın:

 <script type="text/javascript"> function testField(field) { var regExpr = new RegExp("^\d*\.?\d*$"); if (!regExpr.test(field.value)) { // Case of error field.value = ""; } } </script> <input type="text" ... onblur="testField(this);"/> 
15
22 янв. Romain Linsolas tərəfindən 22 yanvarda cavablandı 2009-01-22 17:46 '09 da 17:46 'da 2009-01-22 17:46

Belə ki, sadə ...

// JavaScript funksiyasında (HTML və ya PHP istifadə edə bilərsiniz).

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

Giriş formasında:

 <input type=text name=form_number size=20 maxlength=12 onkeypress='return isNumberKey(event)'> 

Giriş maks. (Bu dəyərlər 12 rəqəmli nömrə istifadə etməyə imkan verir)

14
12 дек. Cavab Rizal Aditya tərəfindən verilir 12 dekabr. 2012-12-12 07:47 '12 at 7:47 2012-12-12 07:47

Aşağıda bir həll tapa bilərsiniz. Bu halda, istifadəçi yalnız dəyər numeric təyin edə bilər. Həmçinin, istifadəçi girişdə copy , paste , dragdrop istifadə edə bilməz.

İzin verilmiş simvollar

 0,1,2,3,4,5,6,7,8,9 

Tələb olunmayan simvollar və simvollar

  • Əlifba dəyəri
  • Xüsusi simvollar
  • Kopyala
  • Daxil edin
  • Çək və buraxın
  • Düşmək

 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" class="form-control" name="number" id="number" onkeypress="return isNumberKey(event)" placeholder="Enter Numeric value only"> 

Işə yaramırsa məni xəbərdar et.

12
03 авг. Shyam Shingadiya tərəfindən verilmiş cavab 03 Avqust. 2017-08-03 11:58 '17 'da 11:58' də 2017-08-03 11:58 'da

Təhlükəsiz bir yanaşma, tuş vuruşlarını ələ keçirmək və əsas kodları süzməyə cəhd etmək üçün giriş dəyərini yoxlamaqdır.

Beləliklə, istifadəçi klaviatura oxları, dəyişən düymələri, arxa boşluq, silmək, qeyri-standart klaviatura istifadə etmək, siçan istifadə etmək, sürüklə və buraxma mətni istifadə etmək və hətta accessibility girişlərini istifadə etməkdə pulsuzdur.

Aşağıda skriptə müsbət və mənfi ədəd verilir.

 1 10 100.0 100.01 -1 -1.0 -10.00 1.0.0 //not allowed 

 <input id="number" value="-3.1415" placeholder="Type a number" autofocus> 

EDIT: Mən köhnə cavabı silindim, çünki indi hesab edirəm ki, köhnəlmişdir.

12
15 нояб. Cavab Vitim.us tərəfindən verilir 15 noyabr. 2011-11-15 21:23 '11 at 21:23 2011-11-15 21:23

Bunun üçün şablondan istifadə edə bilərsiniz:

 <input id="numbers" pattern="[0-9.]+" type="number"> 

Burada mobil saytın bütün ipuçlarını tapa bilərsiniz .

10
27 дек. Cavab Ashley Nautiyal tərəfindən verilir 27 Dekabr. 2013-12-27 12:33 '13 at 12:33 2013-12-27 12:33

JavaScript kodu:

 function validate(evt) { if(evt.keyCode!=8) { var theEvent = evt || window.event; var key = theEvent.keyCode || theEvent.which; key = String.fromCharCode(key); var regex = /[0-9]|\./; if (!regex.test(key)) { theEvent.returnValue = false; if (theEvent.preventDefault) theEvent.preventDefault(); } } } 

HTML kodu:

 <input type='text' name='price' value='0' onkeypress='validate(event)'/> 

Backspace əsas kodu 8 olduğundan gözəl işləyir və müntəzəm ifadə imkan vermir, belə ki, bu səhvləri həll etmək üçün asan bir yoldur :)

8
01 мая '12 в 18:52 2012-05-01 18:52 cavab AirWolf tərəfindən 01 may 2012-ci il tarixində saat 18 : 52-də verilir. 2012-05-01 18:52

Alfa və ya sayısal arasında bir cihaz (ehtimalsa bir mobil telefon) təklif etmək istəyirsinizsə, <input type="number"> istifadə edə bilərsiniz.

8
29 июля '10 в 20:31 2010-07-29 20:31 Cavab, Steven tərəfindən 29 iyul 'da 20:31' də 2010-07-29 20:31 'də verilir

Event.keyCode və ya event.which: əvəzinə jQuery və replace () istifadə edərək, qısa və zəif bir tətbiq:

 $('input.numeric').live('keyup', function(e) { $(this).val($(this).val().replace(/[^0-9]/g, '')); }); 

Bir an üçün məktub alır və CTRL / CMD + A bir az qəribə görünür kiçik bir yan təsiri.

8
23 мая '11 в 13:41 2011-05-23 13:41 cavab 23 may 2011-ci il saat 13: 41-də Tarmo-da verilib

input type="number" bir HTML5 atributudur.

Başqa bir halda, sizə kömək edəcək:

 function isNumberKey(evt){ var charCode = (evt.which) ? evt.which : evt.keyCode if (charCode > 31  (charCode < 48 || charCode > 57)) return false; return true; } <input type="number" name="somecode" onkeypress="return isNumberKey(event)"/> 
7
20 дек. Cavab 20 dekabrda Vaishali Tekale tərəfindən verilir . 2013-12-20 16:09 '13 at 16:09 2013-12-20 16:09

JQuery istifadə edərək başqa bir seçim

 $(".numeric").keypress(function() { return (/\d/.test(String.fromCharCode(event.which) )) }); 
7
23 февр. Şurokun 23 Fevralda verdiyi cavabı . 2012-02-23 20:21 '12 at 8:21 pm 2012-02-23 20:21

Siz həmçinin daxilolma dəyərini müqayisə edə bilərsiniz (məsələn, standart olaraq simli olaraq qəbul olunur), məsələn:

 if(event.target.value == event.target.value * 1) { // returns true if input value is numeric string } 

Bununla belə, bunu bir keypu kimi bir hadisə ilə birləşdirmək lazımdır.

6
22 нояб. Cavab 22 noyabrda cincplug verilir 2011-11-22 13:38 '11 at 13:38 2011-11-22 13:38
 <input name="amount" type="text" value="Only number in here"/> <script> $('input[name=amount]').keyup(function(){ $(this).val($(this).val().replace(/[^\d]/,'')); }); </script> 
5
06 июня '13 в 23:46 2013-06-06 23:46 Cavab Voidcode 06.06.2013 tarixində 11:46 2013-06-06 23:46 tarixində verilir

yalnız type = "number" istifadə edin, indi bu xüsusiyyət bir çox brauzerdə dəstəklənir

 <input type="number" maxlength="3" ng-bind="first"> 
5
23 нояб. Cavab 23 noyabr saigopi tərəfindən verilir . 2017-11-23 08:54 '17 saat 8:54 'da 2017-11-23 08:54

Giriş alanına yalnız nömrələri əlavə edə biləcəyiniz başqa bir nümunə məktub yaza bilməz

 <input type="text" class="form-control" id="phone" name="phone" placeholder="PHONE" spellcheck="false" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1');"> 
5
04 сент. Cavab Mili Miyatoviç tərəfindən verilmişdir 04 Sep. 2017-09-04 19:46 '17 saat 19:46 'da 2017-09-04 19:46

Bu DOM istifadə edin:

 <input type = "text" onkeydown = "validate(event)"/> 

Və bu skript:

 validate = function(evt) { if ([8, 46, 37, 39, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 35, 36].indexOf(evt.keyCode || evt.which) == -1) { evt.returnValue = false; if(evt.preventDefault){evt.preventDefault();} } } 

... Və ya indexOf olmadan bir script, iki for istifadə ...

 validate = function(evt) { var CharValidate = new Array("08", "046", "039", "948", "235"); var number_pressed = false; for (i = 0; i < 5; i++) { for (Ncount = 0; Ncount < parseInt(CharValidate[i].substring(0, 1)) + 1; Ncount++) { if ((evt.keyCode || evt.which) == parseInt(CharValidate[i].substring(1, CharValidate[i].lenght)) + Ncount) { number_pressed = true; } } } if (number_pressed == false) { evt.returnValue = false; if(evt.preventDefault){evt.preventDefault();} } } 

Onkeydown özniteliğinin onkeypress atributundan əvvəl yoxlanıldığı üçün, onkeypress yerinə onkeydown atributunu istifadə etdim. Problem Google Chrome brauzerində olacaq.

"Onkeypress" atributu ilə, TAB Google Chrome'da "preventDefault" ilə idarə olunmayacaq, lakin "onkeydown" atributu ilə TAB idarə edilə bilər!

TAB => 9 ASCII kodu

İlk script ikincidən daha az koda malikdir, lakin ASCII xarakterli array bütün düymələri olmalıdır.

İkinci ssenarisi ilkdən daha böyükdür, lakin bütün düymələri lazım deyil. Hər bir sıra mövqesindəki ilk rəqəm, hər bir mövqedən oxunacaqdır. Hər oxumaq üçün 1-ə qədər artırılacaq. Məsələn:




NCount = 0

48 + NCount = 48

NCount + +

48 + NCount = 49

NCount + +

...

48 + NCount = 57




Sayısal düymələr yalnız 10 (0 - 9) halda olsa da, 1 milyonluq olsaydı, bütün bu düymələri ilə bir sıra yaratmaqda heç bir nöqtə olmazdı.

ASCII kodları:

  • 8 ==> (Backspace);
  • 46 => (Sil);
  • 37 => (sol ox);
  • 39 => (sağ ox);
  • 48 - 57 => (ədədlər);
  • 36 => (ev);
  • 35 => (son);
4
03 марта '13 в 9:11 2013-03-03 09:11 Cavab Danielə 03 Mart '13 'də saat 9:11' də verildi 2013-03-03 09:11

Bu təkmilləşdirilmiş xüsusiyyətdir:

 function validateNumber(evt) { var theEvent = evt || window.event; var key = theEvent.keyCode || theEvent.which; if ((key < 48 || key > 57)  !(key == 8 || key == 9 || key == 13 || key == 37 || key == 39 || key == 46) ){ theEvent.returnValue = false; if (theEvent.preventDefault) theEvent.preventDefault(); } } 
4
04 дек. Cavab Ehsan Chavoshi tərəfindən verilir 04 dekabr. 2010-12-04 19:24 '10 at 19:24 2010-12-04 19:24

Bu geowa4 həllinin inkişaf etmiş versiyasıdır. minmax xüsusiyyətlərini dəstəkləyir. Nömrə aralığının xaricindədirsə, əvvəlki dəyər göstəriləcək.

Burada onu yoxlaya bilərsiniz.

Istifadə: <input type=text class='number' maxlength=3 min=1 max=500>

 function number(e) { var theEvent = e || window.event; var key = theEvent.keyCode || theEvent.which; if(key!=13 enter and tab key = String.fromCharCode( key ); var regex = /[0-9]|\./; if( !regex.test(key)) { theEvent.returnValue = false; if(theEvent.preventDefault) theEvent.preventDefault(); } } } $(document).ready(function(){ $("input[type=text]").filter(".number,.NUMBER").on({ "focus":function(e){ $(e.target).data('oldValue',$(e.target).val()); }, "keypress":function(e){ e.target.oldvalue = e.target.value; number(e); }, "change":function(e){ var t = e.target; var min = $(t).attr("min"); var max = $(t).attr("max"); var val = parseInt($(t).val(),10); if( val<min || max<val) { alert("Error!"); $(t).val($(t).data('oldValue')); } } }); }); 

Girişlər dinamik olaraq bu istifadə:

 $(document).ready(function(){ $("body").on("focus","input[type=text].number,.NUMBER",function(e){ $(e.target).data('oldValue',$(e.target).val()); }); $("body").on("keypress","input[type=text].number,.NUMBER",function(e){ e.target.oldvalue = e.target.value; number(e); }); $("body").on("change","input[type=text].number,.NUMBER",function(e){ var t = e.target var min = $(t).attr("min"); var max = $(t).attr("max"); var val = parseInt($(t).val()); if( val<min || max<val) { alert("Error!"); $(t).val($(t).data('oldValue')); } }); }); 
3
13 июля '12 в 18:51 2012-07-13 18:51 Cavab 13 iyul 2012-ci il saat 18 : 00 -da user669677 tərəfindən verilmişdir 2012-07-13 18:51

Ən yaxşı yol (bütün ədədlərin nömrələrini - real mənfi, real müsbət, mənfi integral, tamsayı müsbət həll etmək üçün):

 $(input).keypress(function (evt){ var theEvent = evt || window.event; var key = theEvent.keyCode || theEvent.which; key = String.fromCharCode( key ); var regex = /[-\d\.]/; // dowolna liczba (+- ,.) :) var objRegex = /^-?\d*[\.]?\d*$/; var val = $(evt.target).val(); if(!regex.test(key) || !objRegex.test(val+key) || !theEvent.keyCode == 46 || !theEvent.keyCode == 8) { theEvent.returnValue = false; if(theEvent.preventDefault) theEvent.preventDefault(); }; }); 
3
01 авг. Cavab verilir koolo90 01 aug. 2012-08-01 10:07 '12 at 10:07 2012-08-01 10:07

Bunun üçün başqa bir (sadə) həll yolu ola bilər ...

String.fromCharCode (əsas) AZERTY klaviaturasında qəribə şeyləri qaytardığı üçün (nümunəvi klaviatura 1 və 1 üçün g kimi bir kod və bir xarakterə dönər.

Klaviatura daxilindəki keyfiyyetin dəyərini sıfırlamaq üçün son dəyərini daha sadə, daha asan və daha etibarlı bir metoddur (bir neçə ədəd ifadədən istifadə etməklə ... decimal yerləri saxlamaq üçün və s ..). Ctrl, Home, Del və Daxil edin ...)

Jq ilə istifadə edin:

 <input class='pn'> <script> function pn(el){nb=el.value;if(isNaN(nb) || nb<1)el.value=1;} jQuery('.pn').keyup(function(){pn(this);}); </script> 

Onkeyup atributu:

 <input onkeyup='positiveNumericInput(this)'> <script>function positiveNumericInput(el){nb=el.value;if(isNaN(nb) || nb<1)el.value=1;}</script> 
2
03 июня '16 в 17:01 2016-06-03 17:01 Cavab Jack tərəfindən 03 iyun '16 saat 17:01 2016-06-03 17:01 'də verilir

Fayda ilə plugins istifadə etsəniz, burada bir test etdim. Makaron istisna olmaqla, çox yaxşı işləyir.

Sayısal giriş

Burada iblisdir http://jsfiddle.net/152sumxu/2

Aşağıdakı kod (lib inserted in line)

 <div id="plugInDemo" class="vMarginLarge"> <h4>Demo of the plug-in </h4> <div id="demoFields" class="marginSmall"> <div class="vMarginSmall"> <div>Any Number</div> <div> <input type="text" id="anyNumber" /> </div> </div> </div> </div> <script type="text/javascript"> // Author: Joshua De Leon - File: numericInput.js - Description: Allows only numeric input in an element. - If you happen upon this code, enjoy it, learn from it, and if possible please credit me: www.transtatic.com (function(b) { var c = { allowFloat: false, allowNegative: false}; b.fn.numericInput = function(e) { var f = b.extend({}, c, e); var d = f.allowFloat; var g = f.allowNegative; this.keypress(function(j) { var i = j.which; var h = b(this).val(); if (i>0  (i<48 || i>57)) { if (d == true  i == 46) { if (g == true  a(this) == 0  h.charAt(0) == "-") { return false } if (h.match(/[.]/)) { return false } } else { if (g == true  i == 45) { if (h.charAt(0) == "-") { return false } if (a(this) != 0) { return false } } else { if (i == 8) { return true } else { return false } } } } else { if (i>0  (i >= 48  i <= 57)) { if (g == true  h.charAt(0) == "-"  a(this) == 0) { return false } } } }); return this }; function a(d) { if (d.selectionStart) { return d.selectionStart } else { if (document.selection) { d.focus(); var f = document.selection.createRange(); if (f == null) { return 0 } var e = d.createTextRange(), g = e.duplicate(); e.moveToBookmark(f.getBookmark()); g.setEndPoint("EndToStart", e); return g.text.length } } return 0 } }(jQuery)); $(function() { $("#anyNumber").numericInput({ allowFloat: true, allowNegative: true }); }); </script> 
2
19 дек. Cavab Faiz 19 dekabr verilir. 2014-12-19 10:49 '14 saat 10:49 2014-12-19 10:49
  • 1
  • 2

tags ilə bağlı digər suallar və ya bir sual