Який найкращий інтерфейс користувача для введення дати народження? [зачинено]


110

Який найкращий метод для селектора дати народження?

  • 3 введення тексту (місяць / день / рік) або один вхід маски. Користувач ПОВИНЕН використовувати клавіатуру
  • 3 виберіть вікна. Користувач може використовувати клавіатуру або мишу.
  • Один приємний підбірник побачень .

Хочу знати, що є найбільш корисним і безпроблемним рішенням, тому користувач взагалі не буде плутати.


Цей інструмент вибору дати jQuery, здається, працює у Firefox, але не в IE7.
Річард Ев

1
можливо, на їхньому сайті є проблеми. Datepicker чудово працює в IE6 / 7/8, FF, Opera та Safari. Можливо, більше :)
Ionuț Staicu

11
month / day / yearвідверто дивно .
TRiG

3
На жаль, мене навчали місяць / день / рік у школі як маленьку дитину. Науково не має сенсу.
Данкан Калверт

1
ISO 8601 на виграш! year / month / day
Qqwy

Відповіді:


28

Для розширеного введення тексту користувача найкраще, якщо користувач знає формат дати, це дуже швидко. Для не настільки просунутого користувача я пропоную скористатися вибором дати. Оскільки зазвичай у вас також є просунуті та нерозвинені користувачі, я пропоную комбінацію введення тексту та вибору дати.


116
Проблема більшості людей, що збираються на побаченнях, полягає в тому, що повернутись 30/40 / і більше років болісно.
UnkwnTech

3
Хоча зараз, коли я дивлюсь на запропоновану ним пропозицію, я здогадуюсь, що це не погано.
UnkwnTech

21
Вибір дати - це насправді жахливий досвід користувачів під час входу в DOB через необхідність повернутися на кілька років назад, як згадує Unkwntech. Крім того, інструмент вибору часу на дату встановлює значення місця певної дати відносно структури місяця та тижня, що не потрібно при виборі DOB.
Алекс Царто

6
Вибір дат jQuery має можливість показу меню, що випадає, на місяць та рік , що робить вибір дати народження набагато швидшим.
Карл Г

1
Ось приклад маскуваного введення тексту з регулярним виразом HTML5 для примусового застосування цифрової клавіатури на пристроях iOS: cde.boaterexam.com/washington/register
Алекс Царто

161

Якщо ваша мета - переконатися, що "користувача взагалі не плутатимуть", я думаю, що це найкращий варіант.

три спадні місця за місяць, день, рік

Я б не рекомендував дату вибору для дати народження . Спочатку потрібно переглянути рік (натисніть, клацніть, натисніть ...), потім до місяця (ще трохи натисніть), а потім знайдіть і натисніть на крихітний номер у сітці.

Підбирачі дат корисні, коли ви не знаєте точної дати у верхній частині голови, наприклад, плануєте поїздку на другий тиждень лютого.


6
Upvoted: Це саме відповідь, яку я збирався дати. Datepicker добре підходить для таких ситуацій, як «я знаю, це п’ятниця», але для дати народження це не додає ніякої цінності.
струнка

14
Стреснення: спадні місця ДУЖЕ дратують користувачів, особливо для такого роду даних. Дивіться Nielsen: useit.com/alertbox/20001112.html
Маурісіо Шеффер

5
@mausch Ось чому я заздалегідь відповів "Якщо ваша мета - переконатися, що" користувач взагалі не буде плутати "" FTA: "Випадаючі меню мають свої переваги ... тому що вони є стандартним віджетом ( навіть якщо це неприємно), користувачі знають, як впоратися зі спадним меню, коли вони стикаються з ним ".
Патрік МакЕлхані

1
@patrick, ви маєте рацію, спадні файли є дуже стандартними, але проста текстова скринька є більш природним IMHO, оскільки вона ближче до того, як виглядатиме паперова форма. Моя думка полягає в тому, що люди "10.10.1975" глибоко ввійшли в мізки від усіх повторень, тому нехай вони пишуть саме це.
Маурісіо Шеффер

24
Отже, ви народилися 9 жовтня чи 10 вересня? Я не можу вирішити цю двозначність за допомогою простого текстового поля.
Патрік МакЕлхані

140

Незважаючи на те, що це дуже старе питання, настільки важливим є правильне введення дати народження, особливо в реєстраційній формі.

Я думаю, що ніхто не зробив цього краще, ніж зареєстрував облікові записи google:

Реєстрація в обліковому записі Google

Виберіть перший місяць у вікні вибору та введіть вручну дату та рік. Простий.

Легко перевірити. Користувачі легко отримують право. Жодне прокручування років у вікні вибору 1900-нинішнього року. Не потрібно оновлювати вікно "день" на основі введених місяців. Відмінно працює в Інтернеті. Чудово працює на мобільних пристроях. Працює для всіх місцевостей, наприклад, 01.10.2014 - це 1 жовтня чи 10 січня? Я очікую, що ми побачимо цей формат вибору дня народження набагато більше в майбутньому.

Вибір дат - це лише погане рішення у всьому світі. Стільки кліків! На мою думку, підбирач побачень корисний лише тоді, коли важливий день тижня, наприклад бронювання квитків.

Оновлення 6.06.2016: Я з Великобританії, тому я більше знайомий з форматами день / місяць / рік, а не місяць / день / рік. Однак, користувачі, які використовуватимуть курсор для вибору місяця, я вважаю, що набагато простіше спочатку встановити поле вибору, а не ввести> вибрати поле> введення. Дата коментаря - 2 червня, а не 6 лютого;)


9
Чому це не найкраща відповідь!
Сніговик

3
Одне, що я хотів би додати до цього, - це дозволити користувачеві вводити числове значення місяця, щоб вибрати значення, коли вибрано це спадне меню. Саме це більшість користувачів звикли друкувати протягом місяця, тому все одно "просто працювати" для користувачів клавіатури.
Елезар

2
Насправді, чим більше я замислююся, я дійсно не бачу вигоди, щоб зробити місяць взагалі спадним. Чому б не зробити так само текстове поле?
Елезар

4
Щоб не плутати місяць і день, переважно.
Мацей Гурбан

2
Хоча у нас за межами Америки зазвичай день до місяця.
jezmck

25

Як згадується в цій статті Якоба Нільсена , слід уникати випадаючих списків для даних, добре відомих користувачеві :

Меню даних, добре відомих користувачам, таких як місяць та рік їх народження. Така інформація часто вкладається в пальці користувачів, а необхідність вибору таких параметрів у меню порушує стандартну парадигму для введення інформації і навіть може створити більше роботи для користувачів.

Ідеальне рішення, ймовірно , що - то на кшталт наступним чином :

  • Укажіть 3 окремих текстових поля для дня, місяця та року (позначені належним чином)
  • Сортуйте текстові поля відповідно до культури користувача.
  • Текстові поля для дня та місяця мають бути розміщені таким чином, щоб було введено двозначне введення.
  • Текстове поле року має бути розміром так, щоб передбачити чотиризначний рік.
  • Дозвольте користувачеві ввести 2 або 4 цифри року. Припустимо, що двозначний рік - 1900, і оновіть текстове поле, щоб відобразити це onBlur (або на наступному кроці підтвердження).
  • Дозвольте користувачеві ввести або номер місяця, або Ім'я місяця.

EDIT: Ось як ми реалізували наш інструмент вибору DOB: Замасковане поле для введення тексту за допомогою регулярного виразів HTML5, щоб застосувати цифрову клавіатуру на пристроях iOS.

http://www.huntercourse.com/usa/texas/


Єдине, що я міг би змінити у вашому інструменті вибору DOB - це поставити "MM" "DD" "YYYY" як текст-заповнювач, а не натяк.
Пол Петтенгілл

@Paul Використання тексту-заповнювача має проблеми зі зручністю. Хоча ми спочатку його мали, ми вирішуємо видалити його, прочитавши це: nngroup.com/articles/form-design-placeholders
Алекс Царто

@AlexCzarto приємний вибір! (але тільки щоб ви знали, якщо ви введете щось на кшталт 31.02.1970, воно видасть вам неправильне повідомлення про помилку)
Thiago Duarte

Якщо я народився 5 червня 2001 року, я б набрав свій DOB як "050601", що ваша пропозиція трактуватиме як 6 травня 1901 року. Якщо у вас є текстові поля, ви покладаєтесь на користувача, щоб визначити замовлення дати MMDD та ввести його інформація належним чином, якщо ви надаєте спадне меню протягом місяця, користувач буде змушений помітити розміщення місяця поза замовленням.
thelem

Якщо розмір текстового поля місяця становить 2 цифри, як ви дозволяєте користувачеві вводити або номер місяця, або ім'я місяця?
Джин Ван

11

Дати народження відрізняються від інших дат, оскільки люди часто звикли вводити конкретні дати народження. Текстове поле з прикладом ясно, швидко і легко увійти:

 _______
|_______| (example: 31/3/1970)

Це повинно підтримувати гнучке форматування, таке як 1/1/1970 або 20/07/70.

Якщо вам доведеться підтримувати різні культури різними конвенціями про дату (наприклад, США та Великобританія), це може бути помилковим для людей, які не прислухаються до цього прикладу. Щоб уникнути цього, ви можете використовувати
список вибору за місяцем та текстові поля для дати та року .

 _________   __   ____
|March  |V| |__| |____|

Це усуває двозначність між замовленнями на день та місяць, але трохи незрозуміло для використання.


5

Слід поглянути на Datejs .

Datejs - це бібліотека дат JavaScript з відкритим кодом.

Всеосяжний, але простий, витривалий і швидкий. Датейс пройшов усі випробування і готовий до страйку. Datejs не просто розбирає рядки, він чисто розрізає їх надвоє.


6
Плагін виглядає чудово, але 25 КБ для простої проблеми здається трохи набагато ...
Ноель Абрахамс

Не погоджуюся з Ноелем. Дати - це найскладніша річ, з якою зазвичай стикаються програмісти, особливо в часових поясах та культурах (саме для цього призначений Datejs).
Rustavore

1
@Gitninja - це трохи солом’яник. Вона не сказала, що це занадто багато для побачення (що є надзвичайно складним), але для "простої проблеми", я вважаю проблему "дати народження". Оскільки існує величезна кількість бібліотек і методів javascript, що рішення можна досягти без 25 КБ, я погодився б.
Керрі Джонс

Якщо додавання 25 кб до моєї форми означає, що мені не доведеться використовувати
спадні

4

Мене хвилює перевага рішення, а не проектування. В ОП сказали: "Я хочу знати, що є найбільш корисним і безпроблемним рішенням, тому користувач взагалі не буде плутати". Тож чи це jQuery або JavaScript або C # або FORTRAN, дизайн важливий - і тут важливий дизайн UX, а не дизайн інтерфейсу. (Ще одне прохання уникнути неправильної та нелогічної конструкції "UX / UI").

Використовуйте введення тексту. Використовуйте три окремих поля з позначкою День, Місяць та Рік (або Місяць, День та Рік). Нехай користувачі вводять дати. Змішування тексту та списків в одній взаємодії є поганою річчю (наприклад, не використовуйте текст для року, а для вибору дати або списки для місяця та дня).

Використовуйте єдине текстове поле, яке використовує підказки у форматі поля, наприклад, [день / місяць / рік] Не вимагайте форматів занадто жорстко. Якщо користувач вводить JUN у тому місці, де ви очікуєте місяць, тоді використовуйте червень на зворотному кінці. Якщо користувач набирає 6 у місці, де ви очікуєте місяць, то використовуйте червень на зворотному кінці. Якщо користувач вводить 06 в тому місці, де ви очікуєте місяць, то використовуйте червень на зворотному кінці.

Використовуйте бритва Occam як керівництво (фактично, більшість часу дані будуть досить точними). Зменшіть когнітивне тертя (не змушуйте користувачів думати).


Використовуючи три окремих текстових поля, це означає, що на мобільному телефоні я повинен натиснути кожне, щоб відобразити цифрову клавіатуру. Решта вашої ідеї хороша - це все повинні бути текстові поля.
PKHunter


3

Я спробував datePicker зі своїм користувачем, але це виявилося для них поганим інтерфейсом. На їх базі я базую 3 текстових поля, де вони можуть швидко набрати [день] [місяць] [рік] :(


2

Поставте обидва і зробіть кожне оновлення іншим. Якщо користувач вибирає дату за вибором дати, легко виправити незначне неправильне клацання в текстовому полі або візуалізувати вибір, який ви ввели у текстове поле в панелі дат.


я не можу поставити обидва, не впишуться в дизайн :) Мені потрібна лише одна з них.
Ionuț Staicu

Оскільки для вибору дат потрібен JavaScript, використовуйте javascript, щоб показати його лише в разі потреби. Встановіть позицію на абсолютне, щоб воно пропливало над усіма іншими елементами.
десь

Зазвичай ви просто поміщаєте текстове поле і прикріплюєте піктограму поруч із ним, що спливає дату вибору.
Туміноїд

2

Чому б ви не випробували всіх трьох і не вибрали той, який найкращий? Це здається хорошим кандидатом для тестування оптимізатора веб-сайтів Google .

Можливо, тип користувачів, який ви маєте, або тип веб-сайту, який ви ведете, може диктувати, що ваше рішення має відрізнятися від "норми".


1

Я зазвичай використовую обидва - підбірник дати, який заповнює текстове поле у ​​правильному форматі. Досвідчені користувачі можуть редагувати текстове поле безпосередньо, користувачі, задоволені мишею, можуть вибирати за допомогою вибору дати.

Якщо ви турбуєтесь про простір, у мене зазвичай є просто текстове поле з невеликою піктограмою календаря поруч. Якщо ви натиснете на піктограму календаря, він відображає панель вибору дати як спливаюче вікно.

Крім того, я вважаю гарною практикою попередньо заповнити текстове поле текстом, який вказує правильний формат (тобто: "DD / MM / РРРР"). Коли користувач фокусує текстове поле, текст зникає, щоб вони могли ввести своє.


1

Як, мабуть, один із людей похилого віку тут, і народжених наприкінці місяця, я вважаю, що випадаючі меню для дат народження можуть засмучувати. Мені зазвичай доводиться прокручувати вниз по двох випадаючих меню, і це незручно. Я набагато краще ввести його.

Якщо у вас може бути елемент управління, розроблений таким чином, щоб він міг або приймати випадаючі меню, або вводити його, і давати зрозуміти, що обидві роботи, це було б чудово.


Це насправді не проблема, оскільки більшість браузерів, коли фокусується віджет, що випадає, підтримують введення тексту, щоб швидко перейти до правильного значення
thepeer

@thepeer: Але вони не схожі на це. Там не те, що Джон Норман ("Дизайн речей щоденного") називав прихильністю для набору тексту.
Девід Торнлі

1

Будучи користуватися датчиком дати чи ні, я думаю, залежить від того, наскільки давні дати. Якщо вони, як правило, в поточному місяці і майже ніколи не перевищують декількох місяців, і ви знаєте, що Javascript буде навколо, підбирач дат добре. Якщо дати не останні (скажімо, дата народження), я вважаю, що це найкращий варіант:

http://img411.imageshack.us/img411/6328/mockupg.png

Зауважте, що це відрізняється від відповіді Патріка МакЕлхані тим, що рік - це текстове поле, а не спадне меню . Вибір номера із спадного поля, що має довгі сотні елементів, дуже дратує користувача.


1
Не потрібно, щоб день був спадною скринькою. Введення та підтвердження числа між 1 - 31 - тривіально.
Алекс Царто

1

Я думаю, що підбір побачень просто ускладнює введення дати народження.

Як уже було сказано, комбінація списків, що випадають на дні та місяці, з текстовим полем за рік видається найбільш ефективним для користувача. Щоб ввести дату народження таким чином потрібно лише менше 10 секунд, що набагато швидше, ніж вибір дати: завдяки клавіші вкладки (яку всі користувачі повинні навчитися використовувати для заповнення форми), швидко перейти з однієї форми елемент до наступного.

Принаймні в Macintosh (я не знаю про Windows), ви також можете використовувати клавіатуру для доступу до дати всередині полів вибору: завдяки клавіші вкладки ви отримуєте фокус на елементі форми, а потім натискайте клавішу зі стрілкою, щоб перейти вниз список, а потім введіть, наприклад, 1967 рік, і ви потрапите туди за мить…


0

Я б віддав перевагу дату вибору (і поле для введення із задокументованим форматом як резервний) для міжнародного сайту.

Формати дати різняться, і їх часом важко читати, якщо ви зараз звикли до них. Дуже погано, що багатьом людям не комфортно з ISO 8601. :-(


0

Я б запропонував використовувати спадне меню для кожного поля, обов’язково позначивши кожну як день, місяць та рік. Вибір дат також може допомогти, але якщо користувач не ввімкне JavaScript, він не працюватиме.


Оскільки сайт, повний javascript, не існує жодного шансу, що БУДЬ-що може працювати без JS. Тож подібні проблеми зараз марні :)
Ionuț Staicu

Що робити, якщо користувач із вадами зору хоче використовувати ваш веб-сайт?
Філіп Мортон

1
Якщо ви використовуєте назви місяців і чотиризначних років, це буде самоназначенням, оскільки між наборами значень не буде перекриття.
Дейв Шерохман

1
Стреснення: спадні місця ДУЖЕ дратують користувачів, особливо для такого роду даних. Дивіться Nielsen: useit.com/alertbox/20001112.html
Маурісіо Шеффер

0

Я б взяв DatePicker. Це єдиний компонент, який дозволяє експертним користувачам вводити його вручну та веде новачків вводити побачення дуже просто.

Календар не повинен з’являтися, якщо ви входите через натискання вкладки, а натискання на кнопку. Тож жоден досвідчений користувач цього не дратує.


0

Хто не використовує користувальницький інтерфейс jQuery DatePicker?

Це налаштовується, щоб задовольнити майже будь-які потреби. Єдиний мінус - якщо ви включаєте його в інтерфейс jQuery, він має дещо великий слід.

Оновлення

Деякі розміри файлів, здається, змінилися, тому вони оновлюються нижче. Майте на увазі, що ці цифри будуть правильними лише за час їх останнього оновлення. З того часу все може змінитися.

  • Тема CSS - 23 кб
  • Користувальницький інтерфейс jQuery - 71 кб
  • DatePicker - 38 кб
  • Плюс декілька зображень (наступний місяць / попередній місяць, які я впевнений, що їх прописано)

Але це не дуже погано ...


Не хвилюйтесь, ви можете дуже сильно нарізати css. Мені хотілося лише знати, який найкращий метод;)
Ionuț Staicu

68k .... це неправильно, як і тема css
28k

@redsquare речі, ймовірно, змінилися з моменту публікації цього повідомлення. Не соромтесь редагувати мою відповідь. Дякую за те, що ви також повідомили мене.
alex


Я настійно рекомендую уникати jQuery datepicker за датами народження. Я намагався його використати, у нас було багато скарг клієнтів. По-перше, повернутися назад було не так вже й важко. (30 років вимагає 360 кліків із налаштуваннями за замовчуванням). Якщо додати вибір року, багато користувачів просто натискають день, який приховує дату вибору дати, не змушуючи вибирати рік. І тоді користувач повернеться і змінить лише рік, а не натискає дату, яка не реєструвала б зміни року. Страшний досвід.
Андрій

0

Вибір часу JQueryUI - це найкращий варіант, оскільки він дозволяє користувачам вводити власну цінність у текстове поле або вони можуть вибирати її з вибору.

Налаштування вибору, що дозволяє легко вводити дні народження чи майбутні дати, дуже легко:

$ ('# datepicker'). датапкер ({
    changeMonth: вірно,
    змінить рік: правда,
    Річний рейтинг: '-100: +50'
});

це показує щось подібне (не можу розмістити фотографію, коли я новий користувач: http://klalex.com/wp-content/uploads/2009/07/picture-1.png )

і yearRange показує дати від DateTime.Now.Year - 100 to DateTime.Now.Year + 50

знайшов це на веб-сайті: http://klalex.com/2009/07/jquery-ui-datepicker-for-birth-date-input/


0

Я щойно відкрив плагін на JSFiddle. Дві можливі альтернативи: 1 вхід АБО 3 входи, але схожий на один ... (натисніть клавішу Tab, щоб перейти до наступного входу)

[посилання] http://jsfiddle.net/davidelrizzo/c8ASE/ Це здається цікавим!


3
Ось посилання: jsfiddle.net/davidelrizzo/c8ASE
Лоран Б


0

ви можете використовувати плагін cxcalendar . Це схоже на інших підбирачів дат. але ви можете вибрати рік і місяць у виборі після натискання назви року-місяця.

введіть тут опис зображення


Це пов'язано з усіма проблемами, пов'язаними з UX, які обговорювалися вище
PKHunter

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.