Отличная статья особенно стиль изложения, плюс вам.
Коммент:
В идеале форм нужно избегать, если не избежать то сокращать > упрощать > автозаполнять.
Если нужно указать адрес в форме, то потрудиться и определить по ip место откуда пользователь заполняет форму и предложить как вариант по умолчанию. Если пользователь вводит емайл то проверить наличие адресата (вдруг пользователь допустил ошибку при вводе, был случай когда перепутали вместо gmail.com написали RU в итоге письмо не пришло, но при проверке наличия пользователя в системе на момент отправки формы можно было бы этого избежать предложив альтернативу).
Но! Обязательно надо помнить что любая автоматизация процессов такого порядка это жесточайшее перетягивание одеяла ответственности на сторону разработчика!
Как то я разрабатывал такого плана интерфейс, который очень много исправлял ошибок во время ввода адресов. Однако за этим пораждалось много других несоотвествий. Все учесть невозможно, ибо такая она — человеческая глупость.
По моей теории лучше всего образовывать и учить пользователя, нежели делать что-то за него.
Как показывает практика, не любят думать если что-то не очевидно то напряжение мозга = лишнее время+лешние нервы(например), а предложить варианты исходя из введенной информации или что-то сделать за пользователя с возможностью исправления в дальнейшем со стороны пользователя приветствуется
Частично согласен с вами.
Однако… Многих будет сбивать с толку автоматическое переключение раскладки, замена .ru на .com, невозможность вбить в «числовое» поле символ, нестандартное поведение поля input, на которое натравили javascript для ввода данных определенного формата (телефон или дата — когда автоматически расставляются дефисы). Пример с вводам ключей в Win. Периодически хочется лишний раз нажать tab (а за меня уже это сделали) или нажать на "-" (а за меня опять это сделали).
К чему это все? Однозначно ни к тому, что это все не стоит делать! Стоит! Однако иногда приходится потратить больше времени, сил и нервов («напряжение мозга = лишнее время+лешние нервы») на то что бы понять как работает «эта долбанная форма» (которая сама постоянно что-то делает и не дает мне ввести данные как я привык).
> Если пользователь вводит емайл то проверить наличие адресата
Это, простите, как? Можно проверить существование домена (кстати, gmail.ru вполне себе существует), но не адресата.
Единственное что можно придумать, это держать список наиболее популярных почтовых сервисов, и при наборе адреса схожего с ними, но не совпадающего, намекать на то что пользователь мог ошибиться. (например ксли он набрал @male.ru или @yanex.ru)
Некоторые пытаются решить эту проблему через добавление в форуме поля «подтвердите email» — что считаю полнейшим идиотизмом. Никогда не видел чтобы кто-то её заполнял — все копируют адрес из первого поля
Угу, написать пользователю «подождите мы проверим существует ли ваша почта на этом сервере» :)
По-моему простых правил валидации на формат хватит, максимум варианты предлагать в процессе ввода, раз уж пользователь ввел после @ «gma» или «yan» предлагать ему gmail.com и yandex.ru причем не из каких-то там своих личных соображений, а тупо выбирая по существующей уже базе ранее зарегавшихся (и подтвердивших мыло, если подтверждение есть).
1. проверяем синтаксис (регэкспом) на правильность
2. проверяем существование домена (dns) / доступность домена (не в дауне ли он сейчас)
3. проверяем существование аккаунта:
Вычисляем MX запись, подключяемся к серверу и проверяем, примет ли он такой адрес
Реализаций — куча, но причин, по которым существование e-mail'а может не правильно определиться — тоже очень много. Не стоит допускать такого.
Если поле телефона, например, содержит несколько телефонов или заполнено в недопустимом формате — не останавливайте регистрацию с просьбами исправьте — вычлените Номер, привидение его к желаемому формату и добавьте в базу — не заставляйте людей думать они от этого себя чувствуют не ловко.
Я думаю, вы понимаете, о чем я.
Правильней предоставить пользователю заполнять согласно установленным правилам. Зачем вы пытаетесь подстроиться, когда надо сделать так, что бы пользователь захотел сам заполнить так, как надо?
«Зачем вы пытаетесь подстроиться, когда надо сделать так, что бы пользователь захотел сам заполнить так, как надо? „
Чтобы выводить остальным пользователям в удобоваримом виде. Например: информация и контактные о компании в базе данных.
На основе уже веденных данных (страна и город вводить прежде телефон в данном случае) либо на основе ip, мы уже узнаем сколько цифр в телефоне и какой код города соотвественно можем проанализировать вводимые данные + доп., дополнительный и тд — конечное количество обозначений — интеллектуальный ввод.
>Чтобы выводить остальным пользователям в удобоваримом виде. Например: информация и контактные о компании в базе данных.
Думаю, что в большинстве случаев в формах вводят номера телефонов не для других пользователей, а для внутреннего использования администрацией, начиная от посылки смс-ок или перезваниваний саппорта до сбагривания баз. Наверное тут важнее удосьво пользователя, в конце-концов можно хранить вообще не преобразовывая, можно сделать несколько регэкспов, и можно нерапосзнанные фильтровать в ручную (возможно поплняя базу регэкспов)
>мы уже узнаем сколько цифр в телефоне и какой код города соотвественно
Какой у меня оператор мобильной связи тоже знаете? А если я по роамингу с другой страны?
Кем установленными? В России одни традиции записи телефонных номеров, на Западе другие, а записывают (и даже публикуют миллионными тиражами) вообще согласно своим представлениям о правильности, комбинирую пару традиций и вводя что-то свое
Человека который совершенно не знает тебя, но он видит результат твоей работы и непременно хочет воспользоваться им, обычно называют Пользователем. Клиент — Сервер это несколько другое понятие.
Статья имеет место быть, приятно изложено.
— Не думаю что в текстовом поле (textarea) стоит указывать текст по умолчанию — странно но неискушенных пользователей это частенько сбивает с толку.
— Считаю, что подсказки и примеры заполнения, если этого позволяет дизайн, лучше писать сбоку (ну или под) элементами ввода.
Ну тултипов существует уже великое множество (как на основе популярных фреймворков типа jquery, так и в чистой реализации). Примеры тут излишни, имхо. А так гугл вам в помощь — для наипростейшего решения в ваш проект с вашими библиотеками
Формы для людей