简体   繁体   English

Jquery Script 不能只接受输入数字

[英]Jquery Script Not Working to accept input numbers only

I have written my Jquery script to input number only for textbox.我已经编写了我的 Jquery 脚本来仅为文本框输入数字。 Following is my html code :以下是我的 html 代码:

<input type="text" name="mobile_number" id="mobile_number" maxlength="10" class="form-control input-md" placeholder="Mobile Number" required="required">

When I try to input some value it accepts both numbers and characters also.当我尝试输入一些值时,它也接受数字和字符。

My Jquery Script is :我的 Jquery 脚本是:

$("#mobile_number").keydown(function(event) {

if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 ) {

}
else {

    if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
        event.preventDefault(); 
    }   
 } });
$(document).ready(function () {
  //called when key is pressed in textbox
  $("mobile_number").keypress(function (e) {
     //if the letter is not digit then display error and don't type anything
     if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
        //display error message
        $("#errmsg").html("Digits Only").show().fadeOut("slow");
               return false;
    }
   });
});

http://jsfiddle.net/lesson8/HkEuf/1/ http://jsfiddle.net/lesson8/HkEuf/1/

I have updated the code here check this out it works as expected . 我在这里更新了代码,请检查它是否按预期工作。

Or, you could try an existing solution, 或者,您可以尝试现有的解决方案,

like this one: http://firstopinion.github.io/formatter.js/demos.html 就像这样: http : //firstopinion.github.io/formatter.js/demos.html

or this one: http://www.decorplanit.com/plugin/ 或这个: http : //www.decorplanit.com/plugin/

Check that you have included any version of jquery , also write your code in $(document).ready() like, 检查您是否包含了任何versionjquery ,还将您的代码写在$(document).ready()中

$(function () {
    $("#mobile_number").keydown(function (event) {
        if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9) {

        } else {
            if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
                event.preventDefault();
            }
        }
    });
});

Demo 演示版

the range of keyCode for numbers is [95,105]; 数字的keyCode范围是[95,105]; and [48,57] 和[48,57]

$("#mobile_number").keydown(function(event) {
if ( (event.keyCode > 95 && event.keyCode <106)||(event.keyCode > 47 && event.keyCode <58)) {
}
else {

    event.preventDefault(); 
} 
});

I use this OneLiner我用这个 OneLiner

<input type="number" onkeypress="return /[0-9]/i.test(event.key)">

Or或者

<input type="text" onkeypress="return /[0-9]/i.test(event.key)">

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM