I have the following code which prevents user from entering space when the length is 0. Now, how can I prevent user from entering all special characters(anything other than a-z A-Z 0-9) when the length is 0?
$('#DivisionName').bind('keypress', function(e) {
if($('#DivisionName').val().length == 0){
if (e.which == 32){//space bar
e.preventDefault();
}
}
});
This is my text box.
<input type="text" id="DivisionName" />
To set the maximum character limit in input field, we use <input> maxlength attribute. This attribute is used to specify the maximum number of characters enters into the <input> element. To set the minimum character limit in input field, we use <input> minlength attribute.
The letter and digit ranges are (inclusive):
This is what you compare e.which
against.
if (e.which < 48 ||
(e.which > 57 && e.which < 65) ||
(e.which > 90 && e.which < 97) ||
e.which > 122) {
e.preventDefault();
}
Or, using inverse logic:
var valid = (e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122);
if (!valid) {
e.preventDefault();
}
Update
Even so, you may still wish to validate the field contents as a whole using a regular expression:
if (/^[A-Z0-9]+$/i.test(value)) {
// it looks okay now
}
Or fix the field by replacing the bad stuff:
var stripped = value.replace(/[^A-Z0-9]+/i, '');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With