Я собираюсь реализовать стандартную функциональность - вход даты рождения на веб-форме для ПК.
Существует много интерфейсов, как реализовать это.
Какой введенный Вы предпочитаете? Каков худший для Вашего мнения?
Дизайн взаимодействия - это искусство само по себе. Будучи сам архитектором/разработчиком, я также предпочитаю использовать 3 поля ввода, но... Мы должны думать о "целевом пользователе" и о том, "к чему он привык". В общем смысле, для меня это приводит к предоставлению всех трех вариантов в одном дизайне взаимодействия.
Всплывающее окно с управлением календарем и 3 полями ввода (с поддержкой выпадающего списка) дало бы что-то, что предлагает все 3 варианта, упомянутые вами.
Опять же, дизайн взаимодействия также фокусируется на "точке зрения" того, для кого создается дизайн взаимодействия. Поэтому, в зависимости от вашей целевой аудитории, вы можете предпочесть опустить некоторые возможности.
Надеюсь, это поможет,
Я согласен с тем, что средство выбора календаря - непростая задача, особенно если возможный диапазон значений широк. Мы остановились на использовании Telerik RadDateInput. В основном это выбор даты, который также может принимать текстовый ввод. Самое классное в нем то, что он почти сообразит любую вещь, которую вы в него бросите:
17 1 09
1 июн 1
1 j 1
2 2 2
Практически все, о чем вы можете подумать (я бы сказал, что единственные случаи, когда он может принять неправильное решение, - это когда ввод также сбивает с толку для человек). Попробуйте это на их демо-сайте .
Обычно мы скрываем средство выбора календаря, чтобы пользователи по привычке не склонны были использовать сложный вариант.
Выбор даты на JavaScript - хороший вариант, если они не препятствуют регулярному ручному вводу, поэтому пользователь может выбирать, как вводить дату. Также приятно иметь гибкий формат даты, например, нет необходимости принудительно использовать косую черту в качестве разделителя и отклонять что-либо еще.
Также помните о проблемах с локализацией. Пользователи из США, вероятно, будут вводить MM / DD / YYYY :)
Я бы использовал раскрывающиеся списки, содержащие только числовые значения, т.е. без названий месяцев. Это позволяет вам вводить дату вместо ее выбора, поскольку она автоматически выбирает набранные части и не позволяет пользователю вводить даты в неверном формате (дд.мм.гггг против мм.дд.гггг и т. Д.). Для года было бы хорошо использовать текстовое поле, если вам не требуется минимальный / максимальный возраст.
Как программист, вам лучше всего выбрать датпикер или выпадающие списки. Они будут применять определенный формат для пользователя, и вам не придется иметь дело с неправильными форматами.
Как пользователь, я лично предпочитаю выпадающие списки, особенно для даты рождения.