Рекомендация: используйте средство выбора даты
Я бы порекомендовал заменить текстовое поле на метку (возможно, стилизованную так, чтобы она выглядела как текстовое поле, если это важно).
Затем я бы добавил событие клика к метке, которая отображала бы средство выбора даты.
Документы для выбора даты
Вы можете обновить значение метки на основе значения средства выбора даты.
Решение существующего кода
var oldValue;
$.dobTextfield.addEventListener("change", function (event) {
var dobValue = $.dobTextfield.value;
// this checks to see if the user has removed a slash bu hitting backspace
// without this the user would not be able to delete a back space
if (oldValue == dobValue + "/") {
return;
}
var newVal = '';
var sizes = [2, 2, 4];
if (dobValue.length == 2 || dobValue.length == 5) {
dobValue += "/";
}
$.dobTextfield.value = dobValue;
oldValue = $.dobTextfield.value;
});
Это введет косую черту, когда пользователь введет 2-й символ, а также позволит пользователю удалить косую черту, используя клавишу возврата, если ему нужно отредактировать дату.
Другие соображения
Текущее текстовое поле позволяет пользователю вводить недопустимую дату. Например, пользователь может ввести дату, например, 60/99/2018. Использование средства выбора даты устраняет необходимость в такой проверке.