I am trying to prevent users from typing certain characters in text boxes and this is the code that I have so far :
$().ready(function() {
$(\".textbox\").keyp
You have to include keyVal = 48 and keyVal = 57 or you will be allowing the 0 and 9 respectively. The final code would look like this:
$().ready(function(){
$(".textbox").keypress(function(event){
var keyVal = (event.charCode || event.keyCode || event.which);
if((keyVal >= 48 && keyVal <= 57))// Numbers
{
return false;
}
});
});
Also looks clearer using the || operator as Devon suggested.
When I've had to do things like this, I've used the event onkeyup
.
Instead of stripping out the chars automatically (which may lead to user confusion), why not have a regex that checks for valid chars on key up, and then maybe displays a side note to the input, something like 'You may not enter numbers in this field', or something more specific to the actual input field, 'Your city name may not include number(s).'.
Your keyVal assignment didn't take all browsers into account. This piece of code works in Firefox, IE7, Safari, Chrome and won't let you type numbers in the field, tested with a normal text input element:
$().ready(function(){
$(".textbox").keypress(function(event){
var keyVal = (event.charCode ? event.charCode : ((event.keyCode) ? event.keyCode : event.which));
if((keyVal > 48 && keyVal < 57))// Numbers
{
return false;
}
});
});