Keydown issue
When value reaches limit, data is not allowed but if user selects the data using shift key, still he is not allowed to enter value
HTML
<script src="http://knockoutjs.com/downloads/knockout-3.2.0.js"></script>
<input type="number" id="txtYear" maxLength="4">
<input type="tel" id="txtYear_tel" maxLength="4">
JavaScript
$(document).ready(function () {
$("#txtYear").on("keydown", function (event) {
var element = event.target;
var keyCode = event.keyCode ? event.keyCode : event.which;
console.log(keyCode, element.value.length, element.maxLength, element.value.length >= element.maxlength - 1 && keyCode > 46)
if (parseInt(element.value.length) >= parseInt(element.maxLength) && keyCode > 46) {
event.preventDefault();
return false;
} else return true;
});
$("#txtYear_tel").on("keydown", function (event) {
var value = event.target.value;
var keyCode = event.keyCode ? event.keyCode : event.which;
if (!(keyCode <= 57 && keyCode != 32) || // Num keys above Qwerty Key and Special keys like backspace and tab
(keyCode >= 96 && keyCode <= 105) || // Num pad keys
(keyCode >= 112 && keyCode <= 145)) {
event.preventDefault();
return false;
}
return true;
});
// To handle special characters. shift + num key
$("#txtYear_tel").on("blur", function (event) {
if (isNaN(event.target.value)) {
event.target.value = "";
}
});
})