Sometimes we need the user to enter only numbers in a text field, so I have found a small piece of JavaScript that does that.
function onlyNumbers(evt){ var e = event || evt; // for trans-browser compatibility var charCode = e.which || e.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; }
But I wanted to take it a step further. Whatabout collecting a users telephone number. This can include other characters such as Parenthesis, the Plus Sign, Period, or space characters. Here is a list of ASCII Character Codes So heres what i came up with:
function onlyNumbers(evt){ var e = event || evt; // for trans-browser compatibility var charCode = e.which || e.keyCode; var allowedChars="1234567890 +.()"; // List of permitted Characters if (allowedChars.indexOf(String.fromCharCode(charCode))<0) return false; return true; }
(Yes I linked things to Wikipedia. So what of it?)
Implementing the code
On your HTML page, you will need to add the javascript inside a <script> tag. This would usually go in the <head> element.
... <head> <title>Your Title</title> <script type="text/javascript"> // .... // Code goes Here // ... </script> </head> ...
Then to set your text box to only allow your selected characters you need to add an onkeypress attribute to the <input > tag
<input type="text" onkeypress="return onlyNumbers(event);" />
Here is a full sample of the code:
<html> <head> <title>Your Title</title> <script type="text/javascript"> function onlyNumbers(evt){ var e = event || evt; // for trans-browser compatibility var charCode = e.which || e.keyCode; var allowedChars="1234567890 +.()"; // List of permitted Characters if (allowedChars.indexOf(String.fromCharCode(charCode))<0) return false; return true; } </script> </head>� <body> Phone Number Field: <input type="text" onkeypress="return onlyNumbers(event);" /> </body> </html>