Мне нравится jQuery, и мне было интересно, использовал ли кто-нибудь хороший плагин или (не jQuery) библиотеку JavaScript, которая позволяет автоматически форматировать структурированные поля, такие как номера телефонов или даты. Я знаю плагин jquery-ui-datapicker, но не то, что ищу здесь. Вы можете ввести номер телефона как 123, который затем станет (123), дополнительные номера будут отформатированы как (123) 456 7890 Ext. 123456. Если вы нажмете «Удалить», элементы автоформатирования автоматически исчезнут, и изменение положения курсора, скажем, после (123) и нажатие на удаление удалит 3 и сделает все остальное (124) 567 8901 Ext. 23456. Те, с которыми я играл, кажутся ненадежными.
плагин Masked Input делает то, что вам нужно, или то, что вы уже сочли ненадежным?
Это было исправлено в последней версии. Теперь вы можете добавить "?" к маске, что означает, что все, что находится после, необязательно. Таким образом, вы можете добавить маску «? (999) 999-9999», чтобы разрешить частичные номера телефонов. Это особенно полезно для расширений.
Похоже, у вас ссылка битая ... Это тот же плагин? digitalbush.com/projects/masked-input-plugin/#demo
@TechplexEngineer, который действительно является действительной ссылкой на тот же плагин. Спасибо, что указали на неработающую ссылку.
Код плагина @TechplexEngineer все еще доступен на github.com/digitalBush/jquery.maskedinput, но репозиторий заархивирован
Аллан,
Я считаю, что лучше всего использовать регулярные выражения внутри двух отдельных методов форматирования для достижения желаемых результатов. Это будет довольно просто для телефонных номеров, и я отправлю пример кода, если он не будет опубликован к тому времени, когда я сижу и у меня есть 10 минут, чтобы что-то написать. Возможно, вместо поля даты вы можете использовать что-то вроде jQuery UI Datepicker? http://marcgrabanski.com/pages/code/jquery-ui-datepicker
HTH,
/ SF
Под плагином календаря я на самом деле имел в виду ui-datepicker и, насколько я могу судить, не подходит.
Очень близко, спасибо за указатель. Если я ввожу номер телефона, затем удаляю цифру и расфокусирую поле, в котором я ввел номер (argh).