Вот более простое решение. Для меня это сработало
<input type="number" id="cvv">
$("#cvv").on("keypress", function(evt) {
var keycode = evt.charCode || evt.keyCode;
if (keycode == 46 || this.value.length==3) {
return false;
}
});
блок JS предотвратит "." (Точку), поэтому нельзя войти в число с плавающей точкой. Мы сохраняем тип ввода как число, так что в качестве ввода будет только число. Если значение равно 3, оно вернет false, поэтому длина ввода также ограничена.