Приветствую.
Задался целью изменить поле с номером телефона так, чтобы оно заполнялась максимально корректно. В поле есть placeholder с образцом заполнения номера телефона, в него встроен плагин заполнения данных по маске (
jquery.maskedinput). Иногда люди заполняют это поле не глядя на него и не проверяя того, что они туда вписали, таких не много, но они есть; некоторые пишут восьмерку, хотя в форме уже указано
+7. В результате иногда приходят формы с номером телефона без одной цифры:
Должно прийти: +7 (999) 123-45-67.
А приходит: +7 (899) 912-34-56 (не хватает цифры 7).
Накидал дополнительную обработку поля:
Codepen. Теперь при вводе первой цифрой 8 шаблон переключается на другой: с +7 (999) 999-99-99 на 8 (999) 999-99-99. Хотелось бы чтобы ваш опытный взгляд помог в правильном оформлении работы этого поля.
Я рассматривал много вариантов библиотек, но не смог подобрать что-то стоящее. Может быть, искал не там и вы подскажете что-то конкретное или как доработать эту.
На ум пришло несколько вариантов того, как можно оформить, но у всех у них есть то, что мне не очень нравится:
1. Убрать вообще плагин форматирования ввода (maskedinput) и оставить свободное поле. В этом случае все будет с большой вероятностью корректно, но не очень красиво.
2. Вести запись всех клавиш пользователя и отправлять их вместе с формой, чтобы в случае некорректно заполненного поля можно было просмотреть отсутствующую цифру. Но это, кажется, перебор.
3. При отправке формы проверять корректность результата заполнения поля, форму не отправлять и выводить пользователю уведомление. Вариант подходящий, но приведенный мной в коде показался более дружелюбным.
4. Отключить возможность ввода первой цифры восьмерки...ХЗ.
В общем, прошу вашего совета в написании поля. Если не затруднит, гляньте форму, попробуйте заполнить как-нибудь совсем криво в прямом смысле этого слова так, чтобы было понятно — можно как-то не так её в примере заполнить. А стоит ли вообще заморачиваться? Людей таких не много, один из нескольких десятков. Может быть оставить все как есть — жесткую форму по маске +7 (XXX) XX-XX-XX...