Запретить ввод букв в input, не усложнил ли код ?
Здравствуйте, читал что новачки усложняют код, а так как я новичок
хотел спросить не усложнил ли я код, и какое решение попроще Задача в input разрешить вводить только цифры, буквы удалять при вводе const maskDate = document.querySelector('.head-checker__mask-date'); maskDate.addEventListener('keyup', () => { let str = maskDate.value; let cur = ""; for (let i = 0; i < str.length; i++){ if(!isNaN(str.charAt(i))) { cur += str.charAt(i); } } maskDate.value = cur; }) |
На самом деле всё "немного" сложнее.
Во первых, надо обрабатывать не 'keyup', а 'input', чтобы охватить всякие изменения, например копи-паст мышкой, драгндроп текста и прочая. Во вторых, текст может редактироваться где-то в середине, и после поправки надо вернуть курсор на место (присвоение нового value перекидывает его в конец). Может быть ещё что-то. В общем, если это тебя для развития, то экспериментируй, если в проекте срочно понадобилось, лучше взять готовый. Ну а удалить не-цифры проще регуляркой: const cur = maskDate.value.replace(/\D/g, '') |
Цитата:
пока изучаю )) спасибо, буду думать Ну а удалить не-цифры проще регуляркой: const cur = maskDate.value.replace(/\D/g, '') блин только 1 строчка )))))))) |
Цитата:
Ты ведь только JS показал... А хтмля нету. :( |
Часовой пояс GMT +3, время: 19:11. |