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 = "";
        }
    });
})