[javascript] Restricting input to textbox: allowing only numbers and decimal point

Here is one more solution which allows for decimal numbers and also limits the digits after decimal to 2 decimal places.

_x000D_
_x000D_
function isNumberKey(evt, element) {_x000D_
  var charCode = (evt.which) ? evt.which : event.keyCode_x000D_
  if (charCode > 31 && (charCode < 48 || charCode > 57) && !(charCode == 46 || charCode == 8))_x000D_
    return false;_x000D_
  else {_x000D_
    var len = $(element).val().length;_x000D_
    var index = $(element).val().indexOf('.');_x000D_
    if (index > 0 && charCode == 46) {_x000D_
      return false;_x000D_
    }_x000D_
    if (index > 0) {_x000D_
      var CharAfterdot = (len + 1) - index;_x000D_
      if (CharAfterdot > 3) {_x000D_
        return false;_x000D_
      }_x000D_
    }_x000D_
_x000D_
  }_x000D_
  return true;_x000D_
}
_x000D_
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>_x000D_
<input type="number" id="rate" placeholder="Billing Rate" required onkeypress="return isNumberKey(event,this)">
_x000D_
_x000D_
_x000D_