Apa UI terbaik untuk memasukkan tanggal lahir? [Tutup]


110

Apa metode terbaik untuk pemilih tanggal lahir?

  • 3 input teks (bulan / hari / tahun) atau satu input topeng. Pengguna HARUS menggunakan keyboard
  • 3 kotak pilih. Pengguna dapat menggunakan keyboard atau mouse.
  • Satu bagus datepicker .

Saya ingin tahu solusi apa yang paling berguna dan bebas masalah, sehingga pengguna tidak akan bingung sama sekali.


Pemilih tanggal jQuery itu tampaknya berfungsi di Firefox, tetapi tidak di IE7.
Richard Ev

1
mungkin situs mereka bermasalah. Datepicker berfungsi dengan baik di IE6 / 7/8, FF, Opera dan Safari. Mungkin lebih :)
Ionuț Staicu

11
month / day / yearterus terang aneh .
TRiG

3
Sayangnya, saya diajari bulan / hari / tahun di sekolah sebagai anak kecil. Ini tidak masuk akal secara ilmiah.
Duncan Calvert

1
ISO 8601 untuk kemenangan! year / month / day
Qqwy

Jawaban:


28

Untuk input teks pengguna mahir adalah yang terbaik, jika pengguna mengetahui format tanggal, itu sangat cepat. Untuk pengguna yang tidak begitu mahir saya sarankan menggunakan datepicker. Karena biasanya Anda juga memiliki pengguna mahir dan non-mahir, saya menyarankan kombinasi input teks dan datepicker.


116
Masalah dengan kebanyakan datepickers adalah menyakitkan untuk kembali ke 30/40 / atau lebih tahun.
UnkwnTech

3
Meskipun sekarang setelah saya melihat yang dia tawarkan, saya kira itu tidak terlalu buruk.
UnkwnTech

21
Pemetik tanggal sebenarnya adalah pengalaman pengguna yang buruk saat memasuki DOB, karena harus kembali beberapa tahun seperti yang disebutkan oleh Unkwntech. Plus, pemilih waktu tanggal menempatkan nilai lokasi tanggal tertentu relatif terhadap struktur bulan dan minggu, yang tidak diperlukan saat memilih DOB.
Alex Czarto

6
datepicker jQuery memiliki opsi untuk menampilkan menu dropdown opsi untuk bulan dan tahun , membuat pemilihan tanggal lahir jauh lebih cepat.
Carl G

1
Berikut adalah contoh input teks bertopeng dengan regex HTML5 untuk memaksa keyboard numerik di perangkat iOS: cde.boaterexam.com/washington/register
Alex Czarto

161

Jika tujuan Anda adalah untuk memastikan "pengguna tidak akan bingung sama sekali," menurut saya ini adalah pilihan terbaik.

tiga dropdown untuk bulan, hari, tahun

Saya tidak akan merekomendasikan pemilih tanggal untuk tanggal lahir . Pertama, Anda harus menelusuri tahun (klik, klik, klik…), lalu ke bulan (klik lagi), lalu cari dan klik angka kecil di kisi.

Datepickers berguna ketika Anda tidak tahu tanggal pastinya, misalnya Anda merencanakan perjalanan untuk minggu kedua bulan Februari.


6
Suara positif: Inilah jawaban yang akan saya berikan. Datepicker bagus untuk situasi seperti 'Saya tahu ini hari Jumat', tetapi untuk tanggal lahir itu tidak menambah nilai.
ramping

14
Tidak disukai: drop-down SANGAT mengganggu pengguna, terutama untuk jenis data ini. Lihat Nielsen: useit.com/alertbox/20001112.html
Mauricio Scheffer

5
@mausch Itu sebabnya saya mengawali jawaban saya dengan "Jika tujuan Anda adalah untuk memastikan 'pengguna tidak akan bingung sama sekali'" FTA: "Menu drop-down memang memiliki kelebihan ... karena mereka adalah widget standar ( meskipun tidak menyenangkan), pengguna tahu cara menangani menu drop-down saat mereka menemukannya. "
Patrick McElhaney

1
@patrick, Anda benar, dropdown sangat standar, tetapi kotak teks sederhana adalah IMHO yang lebih alami karena lebih dekat dengan bentuk kertas nantinya. Maksud saya adalah bahwa orang-orang memiliki "10/9/1975" yang tertanam kuat ke dalam otak mereka dari semua pengulangan, jadi biarkan mereka menulis itu saja.
Mauricio Scheffer

24
Jadi, apakah Anda lahir pada tanggal 9 Oktober atau 10 September? Saya tidak bisa menyelesaikan ambiguitas itu dengan kotak teks sederhana.
Patrick McElhaney

140

Meskipun ini adalah pertanyaan yang sangat lama, sangat penting untuk mendapatkan masukan tanggal lahir yang benar, terutama dalam formulir pendaftaran.

Saya pikir tidak ada yang melakukan ini lebih baik daripada mendaftar akun google:

Pendaftaran Akun Google

Pilih bulan pertama dari kotak pilih dan ketik tanggal dan tahun secara manual. Sederhana.

Mudah divalidasi. Mudah bagi pengguna untuk melakukannya dengan benar. Tidak ada pengguliran mundur tahun di kotak pilih dari tahun 1900-tahun ini. Tidak perlu memperbarui kotak pilih 'hari' berdasarkan masukan bulan. Berfungsi dengan baik di web. Berfungsi dengan baik di perangkat seluler. Berfungsi untuk semua lokal, mis. 01/10/2014 - apakah itu tanggal 1 Oktober atau 10 Januari? Saya berharap kita akan melihat format pemilih ulang tahun ini lebih banyak di masa mendatang.

Seorang datepicker hanyalah solusi yang buruk secara keseluruhan. Begitu banyak klik! Menurut pendapat saya, datepicker hanya berguna ketika mengetahui hari dalam seminggu itu penting misalnya memesan tiket.

Pembaruan 2/6/2016: Saya dari Inggris, jadi saya lebih akrab dengan format hari / bulan / tahun, daripada bulan / hari / tahun. Namun, pengguna yang akan menggunakan kursor mereka untuk memilih bulan, saya yakin lebih mudah memiliki kotak pilih terlebih dahulu, daripada masuk ke input> pilih kotak> input. Tanggal komentar adalah 2 Juni, bukan 6 Februari;)


9
Mengapa ini bukan jawaban teratas!
Snowman

3
Satu hal yang ingin saya tambahkan ke ini adalah mengizinkan pengguna untuk mengetikkan nilai numerik bulan ini untuk memilih nilai, ketika dropdown itu dipilih. Itulah yang biasa diketik sebagian besar pengguna selama sebulan, jadi masih "berfungsi" untuk pengguna keyboard.
Elezar

2
Sebenarnya, semakin saya pikirkan, saya tidak benar-benar melihat manfaat menjadikan bulan ini dropdown sama sekali. Mengapa tidak membuatnya menjadi bidang teks saja?
Elezar

4
Untuk menghindari kebingungan bulan dan hari.
Maciej Gurban

2
Padahal kita di luar Amerika biasanya memiliki Hari Sebelum Bulan.
jezmck

25

Seperti yang disebutkan dalam artikel Jakob Nielsen ini , daftar drop-down harus dihindari untuk data yang diketahui oleh pengguna :

Menu-menu data yang diketahui pengguna, seperti bulan dan tahun kelahiran mereka. Informasi semacam itu sering kali tertanam di jari pengguna, dan harus memilih opsi tersebut dari menu melanggar paradigma standar untuk memasukkan informasi dan bahkan dapat menciptakan lebih banyak pekerjaan bagi pengguna.

Solusi ideal mungkin sesuatu seperti berikut:

  • Sediakan 3 kotak teks terpisah untuk hari, bulan, dan tahun (diberi label dengan benar)
  • Urutkan kotak teks sesuai dengan budaya pengguna.
  • Kotak teks Hari dan Bulan harus berukuran sedemikian rupa sehingga diasumsikan input 2 digit.
  • Kotak teks tahun harus berukuran sehingga diasumsikan tahun dengan 4 digit.
  • Izinkan pengguna memasukkan tahun 2 atau 4 digit. Asumsikan tahun 2 digit adalah 1900, dan perbarui kotak teks untuk mencerminkan onBlur ini (atau pada langkah konfirmasi berikut).
  • Izinkan pengguna untuk memasukkan nomor bulan ATAU nama bulan.

EDIT: Berikut adalah cara kami menerapkan pemilih DOB kami: Bidang input teks bertopeng dengan regex HTML5 untuk memaksa keyboard numerik pada perangkat iOS.

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


Satu-satunya hal yang akan saya modifikasi pada alat pilih DOB Anda adalah menempatkan "MM" "DD" "YYYY" sebagai teks placeholder, bukan sebagai petunjuk.
Paul Pettengill

@Paul Menggunakan teks placeholder memiliki tantangan kegunaannya. Meskipun awalnya kita lakukan memilikinya, kami memutuskan untuk menghapusnya setelah membaca ini: nngroup.com/articles/form-design-placeholders
Alex Czarto

@AlexCarto pemetik yang bagus! (tetapi sebagai info saja, jika Anda memasukkan sesuatu seperti 02/31/1970 itu akan memberi Anda pesan kesalahan yang salah)
Thiago Duarte

Jika lahir pada tanggal 5 Juni 2001, saya akan mengetikkan DOB saya sebagai "050601", yang akan ditafsirkan oleh saran Anda sebagai 6 Mei 1901. Jika Anda memiliki kotak teks, Anda mengandalkan pengguna untuk melihat urutan tanggal MMDD dan memasukkannya info yang tepat, jika Anda memberikan dropdown untuk bulan maka pengguna akan dipaksa untuk melihat penempatan bulan yang tidak teratur.
thelem

Jika Anda mengukur kotak teks bulan menjadi 2 digit, bagaimana Anda mengizinkan pengguna untuk memasukkan nomor bulan ATAU nama bulan?
Jin Wang

11

Tanggal lahir berbeda dari tanggal lain karena orang sering kali terbiasa mengetikkan tanggal lahir spesifik mereka.
Sebuah kotak teks dengan contoh jelas, cepat dan mudah untuk masuk:

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

Ini harus mendukung pemformatan fleksibel seperti 1/1/1970 atau 20/07/70.

Jika Anda harus mendukung budaya yang berbeda dengan konvensi tanggal yang berbeda (misalnya AS dan Inggris) maka ini bisa menjadi rawan kesalahan bagi orang yang tidak mengindahkan contoh. Untuk menghindari hal ini, Anda dapat menggunakan
daftar pilih untuk bulan, dan kotak teks untuk tanggal dan tahun .

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

Ini menghilangkan ambiguitas antara pemesanan hari dan bulan, tetapi sedikit lebih kaku untuk digunakan.


5

Anda harus melihat Datejs .

Datejs adalah Perpustakaan Tanggal JavaScript sumber terbuka.

Komprehensif, namun sederhana, tersembunyi, dan cepat. Datejs telah melewati semua ujian dan siap untuk menyerang. Datejs tidak hanya mengurai string, ia memotongnya dengan rapi menjadi dua.


6
Plugin ini tampak hebat, tetapi 25 KB untuk masalah sederhana tampaknya sedikit berlebihan ...
Noel Abrahams

Tidak setuju dengan Noel. Tanggal adalah hal paling rumit yang biasanya dihadapi oleh programmer, terutama lintas zona waktu dan budaya (untuk apa Datejs dirancang).
Rustavore

1
@ Gitninja - itu sedikit konyol. Dia tidak mengatakan itu terlalu banyak untuk kencan (yang sangat rumit) tetapi untuk "masalah sederhana", saya menganggap masalah "tanggal lahir". Karena ada sejumlah besar perpustakaan javascript dan metode solusi dapat dicapai tanpa 25KB, saya setuju.
Kerry Jones

Jika menambahkan 25kb ke formulir saya berarti saya tidak harus menggunakan menu dropdown maka
biarlah

4

Saya bermasalah dengan banyaknya solusi daripada mendesain. OP berkata, "Saya ingin tahu solusi apa yang paling berguna dan bebas masalah, jadi pengguna tidak akan bingung sama sekali." Jadi apakah itu jQuery atau JavaScript atau C # atau FORTRAN, desainnya penting - dan desain UX-nya, bukan desain UI yang penting di sini. (Permohonan lain untuk menghindari konstruksi "UX / UI" yang salah dan tidak logis).

Gunakan input teks. Gunakan tiga kotak terpisah berlabel Hari, Bulan, dan Tahun (atau Bulan, Hari, dan Tahun). Izinkan pengguna mengetik tanggal. Mencampur teks dan daftar dalam interaksi yang sama adalah Hal yang Buruk (jangan gunakan input teks untuk tahun tetapi pemilih tanggal atau daftar untuk bulan dan hari, misalnya).

Gunakan satu bidang teks yang menggunakan petunjuk format dalam bidang, misalnya, [hari / bulan / tahun] Jangan memerlukan format terlalu kaku. Jika pengguna mengetik JUN di tempat yang Anda harapkan satu bulan, gunakan Juni di bagian belakang. Jika pengguna mengetik 6 di tempat yang Anda harapkan sebulan, gunakan Juni di bagian belakang. Jika pengguna mengetik 06 di tempat yang Anda harapkan satu bulan, maka gunakan Juni di bagian belakang.

Gunakan Occam's Razor sebagai panduan (pada dasarnya, sebagian besar data akan cukup akurat). Kurangi gesekan kognitif (jangan buat pengguna berpikir).


Menggunakan tiga kotak teks terpisah berarti di ponsel saya harus mengklik masing-masing agar keypad numerik muncul. Ide Anda lainnya bagus - ini semua harus berupa kotak teks.
PKHunter


3

Saya telah mencoba datePicker dengan pengguna saya, tetapi ternyata UI yang buruk bagi mereka. Yang akhirnya saya lakukan berdasarkan permintaan mereka adalah memiliki 3 kotak teks tempat mereka dapat mengetik [hari] [bulan] [tahun] dengan cepat :(


2

Letakkan keduanya dan buat satu sama lain memperbarui. Jika pengguna memilih tanggal dari pemilih data, mudah untuk memperbaiki kesalahan klik kecil di bidang teks atau memvisualisasikan pilihan yang Anda ketikkan ke dalam bidang teks di pemilih data.


saya tidak bisa menempatkan keduanya, tidak akan cocok dengan desain :) Saya hanya perlu satu dari mereka.
Ionuț Staicu

Karena datepicker membutuhkan javascript, gunakan javascript untuk menampilkannya hanya jika diperlukan. Atur posisi menjadi absolut sehingga akan mengapung di atas semua elemen lainnya.
beberapa

Biasanya Anda hanya meletakkan kolom teks dan melampirkan ikon di sebelahnya yang memunculkan datepicker.
Tuminoid

2

Mengapa Anda tidak menguji ketiganya dan memilih salah satu yang berkinerja terbaik? Ini sepertinya kandidat yang baik untuk diuji oleh Google Pengoptimal Situs Web .

Mungkin jenis pengguna yang Anda miliki, atau jenis situs yang Anda jalankan mungkin menentukan bahwa solusi Anda harus berbeda dari "norma".


1

Saya biasanya menggunakan keduanya - datepicker yang mengisi bidang teks dalam format yang benar. Pengguna mahir dapat mengedit textfield secara langsung, pengguna yang menyukai mouse dapat memilih menggunakan datepicker.

Jika Anda khawatir tentang ruang, saya biasanya hanya memiliki bidang teks dengan ikon kalender kecil di sebelahnya. Jika Anda mengklik ikon kalender, ini akan menampilkan datepicker sebagai popup.

Juga menurut saya praktik yang baik untuk mengisi sebelumnya bidang teks dengan teks yang menunjukkan format yang benar (yaitu: "DD / MM / YYYY"). Ketika pengguna memfokuskan bidang teks, teks itu menghilang sehingga mereka dapat memasukkannya sendiri.


1

Sebagai salah satu orang tua di sini, dan lahir di akhir bulan, saya merasa menu drop-down untuk tanggal lahir membuat saya frustrasi. Saya biasanya harus menggulir ke bawah pada dua menu drop-down, dan itu canggung. Saya lebih suka mengetiknya.

Jika Anda dapat memiliki kontrol yang dirancang agar dapat menerima menu drop-down atau diketik, dan memperjelas keduanya berfungsi, itu akan sangat baik.


Ini sebenarnya bukan masalah karena sebagian besar browser, saat widget tarik-turun difokuskan, mendukung pengetikan untuk mendapatkan nilai yang benar dengan cepat
kurir

@thepeer: Tapi mereka tidak terlihat seperti itu. Tidak ada yang disebut John Norman ("Design of Everyday Things") sebagai kemampuan mengetik.
David Thornley

1

Apakah akan menggunakan datepicker atau tidak, saya pikir tergantung pada berapa lama tanggal tersebut. Jika mereka biasanya pada bulan ini, dan hampir tidak pernah lebih dari beberapa bulan, dan Anda tahu bahwa Javascript akan ada, sebuah datepicker adalah baik. Jika tanggalnya bukan yang terbaru (katakanlah, tanggal lahir) saya pikir ini adalah pilihan terbaik:

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

Perhatikan bahwa ini berbeda dengan jawaban Patrick McElhaney karena tahun adalah kotak teks, bukan dropdown . Memilih nomor dari kotak drop-down yang panjangnya ratusan elemen sangat mengganggu pengguna.


1
Tidak perlu hari menjadi kotak drop-down. Memasukkan dan memvalidasi angka antara 1 - 31 itu sepele.
Alex Czarto

1

Saya pikir seorang pemilih tanggal hanya membuat langkah yang lebih rumit untuk memasukkan tanggal lahir seseorang.

Seperti yang telah disebutkan, kombinasi daftar drop untuk hari dan bulan dengan kotak teks untuk tahun tampaknya paling efisien untuk pengguna. Hanya perlu kurang dari 10 detik untuk memasukkan tanggal lahir dengan cara ini, yang jauh lebih cepat daripada alat pilih tanggal: berkat tombol tab (yang harus dipelajari oleh semua pengguna untuk mengisi formulir), cepat untuk beralih dari satu formulir elemen ke yang berikutnya.

Setidaknya di bawah Macintosh (Saya tidak tahu tentang Windows), Anda juga dapat menggunakan keyboard untuk mengakses tanggal di dalam kotak pilih: berkat tombol tab, Anda mendapatkan fokus ke elemen formulir, lalu tekan tombol panah untuk drop down daftar, lalu ketik misalnya 1967 dan Anda sampai di sana dalam sekejap mata…


0

Saya lebih suka datepicker (dan kotak input dengan format terdokumentasi sebagai fall-back) untuk situs internasional.

Format tanggal bervariasi dan terkadang sulit dibaca jika Anda sekarang sudah terbiasa. Sayang sekali banyak orang tidak nyaman dengan ISO 8601. :-(


0

Saya akan menyarankan menggunakan menu drop-down untuk setiap bidang, pastikan untuk memberi label masing-masing sebagai hari, bulan dan tahun. Pemilih tanggal mungkin juga membantu, tetapi jika pengguna tidak mengaktifkan JavaScript, ini tidak akan berfungsi.


Karena merupakan situs yang penuh dengan javascript, tidak ada kemungkinan APA SAJA dapat bekerja tanpa JS. Jadi kekhawatiran seperti ini tidak berguna sekarang :)
Ionuț Staicu

Bagaimana jika pengguna tunanetra ingin menggunakan situs web Anda?
Philip Morton

1
Jika Anda menggunakan nama bulan dan tahun dengan empat digit, nama tersebut akan diberi label sendiri, karena tidak akan ada tumpang tindih di antara kumpulan nilai.
Dave Sherohman

1
Tidak disukai: drop-down SANGAT mengganggu pengguna, terutama untuk jenis data ini. Lihat Nielsen: useit.com/alertbox/20001112.html
Mauricio Scheffer

0

Saya akan mengambil DatePicker. Ini adalah satu-satunya komponen yang memungkinkan pengguna ahli untuk memasukkannya secara manual dan memandu pemula untuk memasukkan tanggal dengan sangat mudah.

Kalender seharusnya tidak muncul jika Anda masuk dengan menekan tab, tetapi mengklik tombol. Jadi tidak ada pengguna ahli yang kesal.


0

Siapa yang tidak Anda gunakan jQuery UI DatePicker?

Ini dapat dikonfigurasi untuk memenuhi hampir semua kebutuhan. Satu-satunya downside adalah jika Anda memasukkannya dengan jQuery UI, ia memiliki footprint yang agak besar ..

Memperbarui

Beberapa ukuran file tampaknya telah berubah, sehingga diperbarui di bawah ini. Ingatlah bahwa nomor ini hanya akan benar pada saat terakhir diperbarui. Banyak hal mungkin telah berubah sejak itu.

  • Tema CSS - 23kb
  • jQuery UI - 71kb diminimalkan
  • DatePicker - 38kb
  • Ditambah beberapa gambar (bulan depan / bulan sebelumnya, yang saya yakin sprited)

Tapi itu tidak terlalu buruk ...


Jangan khawatir, Anda bisa memotong css cukup banyak. Saya hanya ingin tahu apa metode terbaik;)
Ionuț Staicu

68k .... itu salah, seperti tema 28k css ...
redsquare

Hal-hal @redsquare mungkin telah berubah sejak saya memposting ini. Jangan ragu untuk mengedit jawaban saya. Terima kasih telah memberi tahu saya juga.
alex

untuk datepicker hanya total custom UI js yang diperkecil 38k, dengan gzip ini jauh lebih kecil
redsquare

Saya sangat merekomendasikan menghindari jQuery datepicker untuk tanggal lahir. Saya sudah mencoba menggunakannya, kami mendapat banyak keluhan dari pelanggan. Pertama, terlalu sulit untuk kembali ke lebih dari beberapa tahun. (30 tahun membutuhkan 360 klik dengan pengaturan default). Jika Anda menambahkan pilihan tahun, banyak pengguna hanya akan mengklik hari terlebih dahulu, yang menyembunyikan pemilih tanggal tanpa memaksa untuk memilih tahun. Dan kemudian pengguna akan kembali dan mengubah hanya tahun, bukan mengklik tanggal, yang tidak akan mendaftarkan perubahan tahun. Pengalaman yang mengerikan.
Andrei

0

JQueryUI datetime picker adalah opsi terbaik karena memungkinkan pengguna pro untuk memasukkan nilai mereka sendiri di kotak teks atau mereka dapat memilihnya dari picker.

Menyiapkan picker untuk memungkinkan memasukkan ulang tahun atau tanggal mendatang dengan mudah juga cukup mudah:

$ ('# datepicker'). datepicker ({
    changeMonth: true,
    changeYear: true,
    yearRange: '-100: +50'
});

ini menunjukkan sesuatu seperti ini (tidak dapat memposting foto karena saya pengguna baru: http://klalex.com/wp-content/uploads/2009/07/picture-1.png )

dan yearRange menunjukkan tanggal dari DateTime.Now.Year - 100 hingga DateTime.Now.Year + 50

menemukan ini di: http://klalex.com/2009/07/jquery-ui-datepicker-for-birth-date-input/


0

Saya baru saja menemukan plugin di JSFiddle. Dua kemungkinan alternatif: 1 masukan tunggal ATAU 3 masukan, tetapi terlihat seperti satu masukan ... (gunakan tombol Tab untuk beralih ke masukan berikutnya)

[link] http://jsfiddle.net/davidelrizzo/c8ASE/ Sepertinya menarik!




0

Anda dapat menggunakan plugin cxcalendar . Sepertinya pemilih data lainnya. tetapi Anda dapat memilih tahun dan bulan setelah mengklik judul tahun-bulan.

masukkan deskripsi gambar di sini


Ini memiliki semua tantangan UX yang sedang dibahas di atas.
PKHunter

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.