0

I have written my Jquery script to input number only for textbox. Following is my html code :

<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 :

$("#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(); 
    }   
 } });
1
  • use regular expression to test number Commented Feb 5, 2014 at 9:26

5 Answers 5

2
$(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/

I have updated the code here check this out it works as expected .

Sign up to request clarification or add additional context in comments.

Comments

1

Or, you could try an existing solution,

like this one: http://firstopinion.github.io/formatter.js/demos.html

or this one: http://www.decorplanit.com/plugin/

Comments

0

Check that you have included any version of jquery, also write your code in $(document).ready() like,

$(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

Comments

0

the range of keyCode for numbers is [95,105]; and [48,57]

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

    event.preventDefault(); 
} 
});

Comments

0

I use this OneLiner

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

Or

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.