0

I have an input field where I only want to be able to input numbers 0 - 9 and nothing else. Its a mobile website so its important that it works on phones. I've found the following code which works perfectly on desktops but doesn't do anything on phones.

$("#phone").keypress(function (event) {
    var code = (event.keyCode ? event.keyCode : event.which);
    if (code < 48 || code > 57) event.preventDefault();
});

Does anyone know how I can achieve the same thing as the code above should but on phones?

just_user
  • 11,769
  • 19
  • 90
  • 135

2 Answers2

2

html5 introduces some new input types you can use:

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

see http://www.w3schools.com/html/html5_form_input_types.asp

emrox
  • 524
  • 3
  • 14
2

It's about the key codes

/*Only number*/
 $(".numb").keydown(function(event) {
            if ( event.keyCode == 190 || event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || (event.keyCode == 65 && event.ctrlKey === true) || (event.keyCode >= 35 && event.keyCode <= 39)) {

        if(event.keyCode == 190){
            if($(this).val().indexOf('.')!=-1){
                  event.preventDefault();
                }

            }
        return;
    }
    else {

        if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {

            event.preventDefault();
            }
    }
});