only allow English characters and numbers for text input
Solution 1:
Assuming you also want to accept spaces:
$("#user").keypress(function(event){
var ew = event.which;
if(ew == 32)
return true;
if(48 <= ew && ew <= 57)
return true;
if(65 <= ew && ew <= 90)
return true;
if(97 <= ew && ew <= 122)
return true;
return false;
});
If you don't want to accept spaces then remove the if(ew == 32) return true;
JSFiddle
Solution 2:
<input type="text" id="firstName" onkeypress="return (event.charCode >= 65 && event.charCode <= 90) || (event.charCode >= 97 && event.charCode <= 122) || (event.charCode >= 48 && event.charCode <= 57)" />
The ASCII Character Set : https://www.w3schools.com/charsets/ref_html_ascii.asp
Solution 3:
All other answers are fine but don't prevent copy and paste non-English characters.
Bellow code works for both (key press and copy-paste):
<input type="text" name="text" oninput="this.value=this.value.replace(/[^A-Za-z\s]/g,'');">
Solution 4:
You can do something like this: http://jsfiddle.net/DveuB/1/
Then it's only 0-9, a-z and A-Z
$(function(){
$("#user").keypress(function(event){
if ((event.charCode >= 48 && event.charCode <= 57) || // 0-9
(event.charCode >= 65 && event.charCode <= 90) || // A-Z
(event.charCode >= 97 && event.charCode <= 122)) // a-z
alert("0-9, a-z or A-Z");
});
});
Update: http://jsfiddle.net/DveuB/4/
To prevent what @mu is talking about:
$("#user").keyup(function(event){
if (event.altKey == false && event.ctrlKey == false)
if ((event.keyCode >= 48 && event.keyCode <= 57 && event.shiftKey== false) ||
(event.keyCode >= 65 && event.keyCode <= 90) ||
(event.keyCode >= 97 && event.keyCode <= 122))
alert("0-9, a-z or A-Z");
});