Search code examples
jquerykeypress

Only allow numbers, decimals, negative


I have this code that only permits numbers to be entered in an input field on keypress()

if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
    return false;
}

How can I also allow decimals, and minus keypress?


Solution

  • This is a solution, but I recommend to use mask plugin, for example: jQuery-Mask-Plugin

    $("#id").keypress(function(e){
      if (e.which != 46 && e.which != 45 && e.which != 46 &&
          !(e.which >= 48 && e.which <= 57)) {
        return false;
      }
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="text" id="id" />