diff --git a/groups/Tapops/js/main.js b/groups/Tapops/js/main.js index 1f6668f..949cab2 100644 --- a/groups/Tapops/js/main.js +++ b/groups/Tapops/js/main.js @@ -586,13 +586,19 @@ class DocumentRepository { if (!input) return; input.setAttribute('max', '9999-12-31'); input.setAttribute('min', '1000-01-01'); - // Clamp year on change as a fallback for browsers that don't enforce max. - input.addEventListener('change', () => { + // Clamp year on both input (fires while typing) and change (fires on blur). + const clampYear = () => { if (!input.value) return; - const [yearStr, month, day] = input.value.split('-'); - const year = parseInt(yearStr, 10); - if (year > 9999) input.value = `9999-${month}-${day}`; - }); + const parts = input.value.split('-'); + if (parts.length !== 3) return; + const year = parseInt(parts[0], 10); + if (!Number.isNaN(year) && year > 9999) { + parts[0] = '9999'; + input.value = parts.join('-'); + } + }; + input.addEventListener('input', clampYear); + input.addEventListener('change', clampYear); }); this.searchInput?.addEventListener('input', (e) => {