Позвольте мне сначала сказать, что мы проверяем каждое поле на стороне сервера, так что это вопрос о удобстве использования на стороне клиента.
Какова общепринятая мудрость, когда именно для проверки и форматирования полей ввода формы HTML с помощью javascript?
В качестве примера у нас есть поле номера телефона. Мы допускаем числа, пробелы, круглые скобки и дефисы. Мы хотим, чтобы в поле было десять цифр. Кроме того, мы хотим, чтобы поле выглядело как (123) 456-7890, даже если пользователь не вводит его таким образом.
Кажется, мы можем
- Проверять и форматировать его, когда пользователь выходит из поля.
- Проверка и форматирование на каждый введенный символ.
- Перехватить нажатия клавиш и предотвратить пользователь вводит неправильные символы.
- Некоторая комбинация вышеуказанного (например, формат при входе и проверка на выходе, предотвращение ввода и форматирования при выходе и т.д.)
- [ Добавлено] Подождите и выполните все проверки и форматирование, когда пользователь нажимает кнопку отправки.
Я видел, как все это делалось, но я не могу найти информацию о том, что является лучшим (или даже общепринятым) с точки зрения удобства использования и, что более важно, почему.
[ Изменить: некоторые пояснения]
Мы абсолютно не соблюдаем стандарты формата. Когда я говорю о формате, я имею в виду, что мы будем использовать javascript для перезаписи вещей, чтобы они выглядели красиво. Если пользователь наберет 1234567890, мы заменим его на (123) 456-7890. Нет "правил форматирования", которые могут выйти из строя.
Я отделяю это от проверки, потому что, если они не набирают достаточное количество чисел, мы должны их исправить.
Я предполагаю, что я должен перефразировать вопрос как "какова традиционная мудрость именно тогда, когда проверять и точно, когда отформатировать...?
Хорошая информация в ответах до сих пор!
EDIT. Я принимаю свой собственный ответ ниже в надежде, что другие найдут ссылку так же полезной, как и я.