[SOLVED] Enter only digits in a textbox

Issue

I was using this function to enter only digits in to textbox and it worked.

function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

    return true;
}

but customer asked me to restrict - sign so user should not enter – sign. So I modified the code to this:

function isNumberKey(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode == 45)
        return false;

    return true;
}

and now it not works, it allows letters too, why?

Solution

You need || in the group:

function isNumberKey(evt) {
  var charCode = (evt.which) ? evt.which : event.keyCode;
  var bool = (charCode > 31) && (charCode < 48 || charCode > 57 || String.fromCharCode(charCode) == "-");

  return !bool;

}
<input type="text" onkeypress='return isNumberKey(event)'>

Answered By – Jai

Answer Checked By – Marie Seifert (BugsFixing Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *