¿Cuál es la mejor interfaz de usuario para ingresar la fecha de nacimiento? [cerrado]

110

¿Cuál es el mejor método para seleccionar la fecha de nacimiento?

  • 3 entradas de texto (mes / día / año) o una entrada de máscara. El usuario DEBE usar el teclado
  • 3 cajas de selección. El usuario puede usar el teclado o el mouse.
  • Un buen selector de fechas .

Quiero saber cuál es la solución más útil y sin problemas, para que el usuario no se confunda en absoluto.

Ionuț Staicu
fuente
Ese selector de fechas de jQuery parece funcionar en Firefox, pero no en IE7.
Richard Ev
1
tal vez su sitio tenga un problema. Datepicker funciona bien en IE6 / 7/8, FF, Opera y Safari. Quizás más :)
Ionuț Staicu
11
month / day / yeares francamente extraño .
TRiG
3
Desafortunadamente, me enseñaron mes / día / año en la escuela cuando era un niño pequeño. Científicamente no tiene sentido.
Duncan Calvert
1
¡ISO 8601 para la victoria! year / month / day
Qqwy

Respuestas:

28

Para un usuario avanzado, la entrada de texto es la mejor, si el usuario conoce el formato de fecha, es muy rápido. Para un usuario no tan avanzado, sugiero usar un selector de fechas. Dado que generalmente también tiene usuarios avanzados y no avanzados, sugiero una combinación de entrada de texto y selector de fecha.

asalamon74
fuente
116
El problema con la mayoría de los buscadores de citas es que es doloroso retroceder 30/40 / o más años.
UnkwnTech
3
Aunque ahora que miro el que ofreció, supongo que no está tan mal.
UnkwnTech
21
El selector de fecha es en realidad una experiencia de usuario terrible al ingresar a la fecha de nacimiento, debido a la necesidad de retroceder varios años, como lo menciona Unkwntech. Además, un selector de fecha y hora coloca el valor de la ubicación de una fecha en particular en relación con la estructura del mes y la semana, lo que no es necesario al elegir una fecha de nacimiento.
Alex Czarto
6
El selector de fecha de jQuery tiene una opción para mostrar menús desplegables de opciones para el mes y el año , lo que hace que la selección de una fecha de nacimiento sea mucho más rápida.
Carl G
1
A continuación, se muestra un ejemplo de una entrada de texto enmascarado con expresiones regulares HTML5 para forzar el teclado numérico en dispositivos iOS: cde.boaterexam.com/washington/register
Alex Czarto
161

Si su objetivo es asegurarse de que "el usuario no se confunda en absoluto", creo que esta es la mejor opción.

three dropdowns for month, day, year

No recomendaría un selector de fecha para la fecha de nacimiento . Primero tienes que buscar el año (clic, clic, clic…), luego el mes (clic más), y luego buscar y hacer clic en el pequeño número en una cuadrícula.

Los selectores de fechas son útiles cuando no sabe la fecha exacta que tiene en la cabeza, por ejemplo, si está planeando un viaje para la segunda semana de febrero.

Patrick McElhaney
fuente
6
Upvoted: Esta es exactamente la respuesta que iba a dar. El selector de fecha es bueno para situaciones del tipo 'Sé que es viernes', pero para la fecha de nacimiento no agrega valor.
delgado
14
Downvoted: los menús desplegables son MUY molestos para los usuarios, especialmente para este tipo de datos. Ver Nielsen: useit.com/alertbox/20001112.html
Mauricio Scheffer
5
@mausch Es por eso que precedí mi respuesta con "Si su objetivo es asegurarse de que 'el usuario no se confunda en absoluto'" FTA: "Los menús desplegables tienen sus ventajas ... porque son un widget estándar ( incluso si es desagradable), los usuarios saben cómo lidiar con un menú desplegable cuando lo encuentran ".
Patrick McElhaney
1
@patrick, tienes razón, los menús desplegables son muy estándar, pero un cuadro de texto simple es más natural en mi humilde opinión, ya que está más cerca de cómo se vería un formulario en papel. Mi punto es que la gente tiene "9/10/1975" profundamente conectado en sus cerebros a partir de todas las repeticiones, así que déjeles escribir eso.
Mauricio Scheffer
24
Entonces, ¿nació el 9 de octubre o el 10 de septiembre? No sé cómo resolver esa ambigüedad con un simple cuadro de texto.
Patrick McElhaney
140

Si bien esta es una pregunta muy antigua, es muy importante para obtener una fecha de nacimiento correcta, especialmente en un formulario de registro.

Creo que nadie lo ha hecho mejor que el registro de cuentas de Google:

Registro de cuenta de Google

Seleccione primero el mes en un cuadro de selección y escriba manualmente la fecha y el año. Sencillo.

Fácil de validar. Es fácil para los usuarios hacerlo bien. No se permite retroceder los años en un cuadro de selección desde 1900 hasta el año actual. No es necesario actualizar un cuadro de selección de 'día' según la entrada del mes. Funciona muy bien en la web. Funciona muy bien en dispositivos móviles. Funciona para todos los lugares, por ejemplo, el 01/10/2014: ¿es el 1 de octubre o el 10 de enero? Espero que veamos mucho más este formato de selección de cumpleaños en el futuro.

Un selector de fechas es solo una mala solución en general. ¡Tantos clics! En mi opinión, un selector de fechas solo es útil cuando es importante saber el día de la semana, por ejemplo, reservar boletos.

Actualización 2/6/2016: Soy del Reino Unido, por lo que estoy más familiarizado con los formatos de día / mes / año, en lugar de mes / día / año. Sin embargo, los usuarios que usarán el cursor para seleccionar el mes, creo que es mucho más fácil tener el cuadro de selección primero, en lugar de ingresar> cuadro de selección> ingresar. La fecha de comentario es el 2 de junio, no el 6 de febrero;)

Patricio
fuente
9
¿Por qué no es esta la mejor respuesta?
Muñeco de nieve
3
Una cosa que diría que agregue a esto es permitir que el usuario ingrese el valor numérico del mes para seleccionar un valor, cuando se selecciona ese menú desplegable. Eso es lo que la mayoría de los usuarios están acostumbrados a escribir durante un mes, por lo que todavía "simplemente funcionaría" para los usuarios del teclado.
Elezar
2
En realidad, cuanto más pienso, no veo ningún beneficio en hacer que el mes sea un menú desplegable. ¿Por qué no convertirlo también en un campo de texto?
Elezar
4
Para evitar confundir mes y día, en su mayoría.
Maciej Gurban
2
Aunque aquellos de nosotros fuera de Estados Unidos usualmente tenemos el día antes del mes.
jezmck
25

Como se menciona en este artículo de Jakob Nielsen , se deben evitar las listas desplegables para los datos que el usuario conoce bien :

Menús de datos bien conocidos por los usuarios, como el mes y año de su nacimiento. A menudo, dicha información está integrada en los dedos de los usuarios, y tener que seleccionar tales opciones de un menú rompe el paradigma estándar para ingresar información e incluso puede crear más trabajo para los usuarios.

La solución ideal es probable algo como lo siguiente:

  • Proporcione 3 cuadros de texto separados para el día, mes y año (etiquetados apropiadamente)
  • Ordene los cuadros de texto según la cultura del usuario.
  • Los cuadros de texto de día y mes deben tener un tamaño que suponga una entrada de 2 dígitos.
  • El cuadro de texto de año debe tener un tamaño que suponga un año de 4 dígitos.
  • Permita que el usuario ingrese un año de 2 o 4 dígitos. Suponga que un año de 2 dígitos es 1900 y actualice el cuadro de texto para reflejar esto en Blur (o en un paso de confirmación siguiente).
  • Permita que el usuario ingrese un número de mes O un nombre de mes.

EDITAR: Así es como implementamos nuestro selector de fecha de nacimiento: campo de entrada de texto enmascarado con expresiones regulares HTML5 para forzar el teclado numérico en dispositivos iOS.

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

Alex Czarto
fuente
Lo único que modificaría en su selector de fecha de nacimiento es poner "MM" "DD" "YYYY" como texto de marcador de posición en lugar de una sugerencia.
Paul Pettengill
@Paul El uso de texto de marcador de posición tiene sus desafíos de usabilidad. Aunque inicialmente lo teníamos, decidimos eliminarlo después de leer esto: nngroup.com/articles/form-design-placeholders
Alex Czarto
@AlexCzarto buen recolector! (pero para que lo sepas, si ingresas algo como 31/02/1970, te dará el mensaje de error incorrecto)
Thiago Duarte
Si nació el 5 de junio de 2001, escribiría mi fecha de nacimiento como "050601", que su sugerencia interpretaría como 6 de mayo de 1901. Si tiene cuadros de texto, confía en que el usuario detecte el orden de fecha de MMDD e ingrese su información correctamente, si proporciona un menú desplegable por mes, el usuario se verá obligado a notar la colocación fuera de orden del mes.
thelem
Si cambia el tamaño del cuadro de texto del mes para que tenga 2 dígitos, ¿cómo permite que el usuario ingrese un número de mes O un nombre de mes?
Jin Wang
11

Las fechas de nacimiento son diferentes de otras fechas porque las personas a menudo están acostumbradas a escribir su fecha de nacimiento específica.
Un cuadro de texto con un ejemplo es claro, rápido y fácil de ingresar:

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

Esto debería admitir un formato flexible como 1/1/1970 o 20/07/70.

Si tiene que apoyar diferentes culturas con diferentes convenciones de fechas (por ejemplo, EE. UU. Y Reino Unido), esto podría ser propenso a errores para las personas que no prestan atención al ejemplo. Para evitar esto, puede usar una
lista de selección para el mes y cuadros de texto para la fecha y el año .

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

Esto elimina la ambigüedad entre el orden de día y mes, pero es un poco más complicado de usar.

Bennett McElwee
fuente
5

Deberías echar un vistazo a Datejs .

Datejs es una biblioteca de fechas de JavaScript de código abierto.

Completo, pero simple, sigiloso y rápido. Datejs ha pasado todas las pruebas y está listo para atacar. Datejs no solo analiza cadenas, las corta limpiamente en dos.

Giovanni Cappellotto
fuente
6
El complemento se ve muy bien, pero
Noel Abrahams
No estoy de acuerdo con Noel. Las fechas son lo más complicado con el que se encuentran los programadores, especialmente en zonas horarias y culturas (que es para lo que está diseñado Datejs).
Rustavore
1
@Gitninja, eso es un poco tonto. Ella no dijo que es demasiado para una fecha (que es extremadamente compleja) pero para un "problema simple", asumo el problema de la "fecha de nacimiento". Dado que hay una gran cantidad de bibliotecas y métodos de JavaScript que se puede lograr una solución sin 25 KB, estoy de acuerdo.
Kerry Jones
Si agregar 25kb a mi formulario significa que no tengo que usar menús desplegables, entonces que así sea
ladieu
4

Me preocupa la preponderancia de solucionar en lugar de diseñar. El OP dijo: "Quiero saber cuál es la solución más útil y sin problemas, para que el usuario no se confunda en absoluto". Entonces, ya sea jQuery o JavaScript o C # o FORTRAN, el diseño es importante, y es el diseño UX, no el diseño de la interfaz de usuario lo que importa aquí. (Otro motivo para evitar el constructo incorrecto e ilógico "UX / UI").

Utilice la entrada de texto. Use tres casillas separadas etiquetadas como Día, Mes y Año (o Mes, Día y Año). Permita que los usuarios escriban las fechas. Mezclar texto y listas en la misma interacción es algo malo (no use la entrada de texto para el año sino el selector de fechas o listas para el mes y el día, por ejemplo).

Utilice un solo campo de texto que utilice sugerencias de formato en el campo, por ejemplo, [día / mes / año] No requiera formatos demasiado rígidos. Si un usuario escribe JUN en el lugar donde espera un mes, use June en el back-end. Si un usuario escribe 6 en el lugar donde espera un mes, utilice junio en el back-end. Si un usuario escribe 06 en el lugar donde espera un mes, utilice junio en el back-end.

Use Occam's Razor como guía (de hecho, la mayoría de las veces los datos serán lo suficientemente precisos). Reduzca la fricción cognitiva (no haga pensar a los usuarios).

Joe
fuente
Usar tres cuadros de texto separados significa que en un móvil tengo que hacer clic en cada uno para que aparezca el teclado numérico. El resto de tu idea es buena; todos deberían ser cuadros de texto.
PKHunter
3

Probé datePicker con mi usuario pero resultó ser una mala interfaz de usuario para ellos. Lo que termino basándome en su solicitud es tener 3 cuadros de texto donde puedan escribir rápidamente [día] [mes] [año] :(

c.sokun
fuente
2

Pon ambos y haz que cada uno actualice el otro. Si el usuario elige la fecha del selector de fecha, es fácil corregir un pequeño error de clic en el campo de texto o visualizar la elección que ingresó en el campo de texto del selector de fecha.

Tuminoide
fuente
No puedo poner ambos, no encajará en el diseño :) Solo necesito uno de esos.
Ionuț Staicu
Dado que el selector de fechas necesita javascript, use javascript para mostrarlo solo cuando sea necesario. Establezca la posición en absoluta para que flote sobre todos los demás elementos.
algunos
Normalmente, solo coloca el campo de texto y adjunta el icono junto a él que muestra el selector de fecha.
Tuminoid
2

¿Por qué no pruebas los tres y eliges el que mejor funciona? Esto parece un buen candidato para probar el Optimizador de sitios web de Google .

Puede ser que el tipo de usuarios que tiene o el tipo de sitio que está ejecutando dicte que su solución debe ser diferente a la "norma".

Nicolai
fuente
1

Normalmente uso ambos: un selector de fecha que llena un campo de texto en el formato correcto. Los usuarios avanzados pueden editar el campo de texto directamente, los usuarios felices del mouse pueden elegir usando el selector de fechas.

Si está preocupado por el espacio, generalmente tengo solo el campo de texto con un pequeño ícono de calendario al lado. Si hace clic en el icono del calendario, aparece el selector de fecha como una ventana emergente.

También me parece una buena práctica rellenar previamente el campo de texto con texto que indique el formato correcto (es decir: "DD / MM / AAAA"). Cuando el usuario enfoca el campo de texto, ese texto desaparece para que pueda ingresar el suyo.

Stewart Johnson
fuente
1

Como quizás una de las personas mayores aquí, y nacida a finales de mes, encuentro que los menús desplegables para las fechas de nacimiento son frustrantes. Normalmente tengo que desplazarme hacia abajo en dos menús desplegables, y eso es incómodo. Prefiero escribirlo.

Si puede tener un control diseñado para que pueda aceptar menús desplegables o ser tecleado, y dejar en claro que ambos funcionan, sería excelente.

David Thornley
fuente
Esto no es realmente un problema porque la mayoría de los navegadores, cuando el widget desplegable está enfocado, admiten la escritura para obtener rápidamente el valor correcto
par
@thepeer: Pero no lo parecen. No existe lo que John Norman ("Diseño de cosas cotidianas") llamó una capacidad para escribir.
David Thornley
1

Si usar un selector de fechas o no, creo que depende de cuánto tiempo hayan pasado las fechas. Si normalmente están en el mes actual, y casi nunca tienen más de unos pocos meses, y sabe que Javascript estará disponible, un selector de fechas es bueno. Si las fechas no son recientes (digamos, una fecha de nacimiento), creo que esta es la mejor opción:

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

Tenga en cuenta que esto es diferente de la respuesta de Patrick McElhaney en que el año es un cuadro de texto, no un menú desplegable . Seleccionar un número de un cuadro desplegable que tenga cientos de elementos es muy molesto para el usuario.

Dormir
fuente
1
No es necesario que el día sea un cuadro desplegable. Ingresar y validar un número entre 1 y 31 es trivial.
Alex Czarto
1

Creo que un selector de fecha simplemente hace que el movimiento sea más complicado para ingresar la fecha de nacimiento.

Como ya se mencionó, una combinación de listas desplegables para días y meses con un cuadro de texto para el año parece lo más eficiente para un usuario. Se necesitan menos de 10 segundos para ingresar una fecha de nacimiento de esta manera, que es mucho más rápido que un selector de fechas: gracias a la tecla de tabulación (que todos los usuarios deben aprender a usar para completar un formulario), es rápido pasar de un formulario elemento al siguiente.

Al menos en Macintosh (no sé sobre Windows), también puede usar el teclado para acceder a la fecha dentro de los cuadros de selección: gracias a la tecla de tabulación, obtiene el foco en el elemento del formulario, luego presiona la tecla de flecha para desplegar la lista, luego escriba, por ejemplo, 1967 y llegará en un abrir y cerrar de ojos ...

Firebush
fuente
0

Preferiría un selector de fechas (y un cuadro de entrada con formato documentado como alternativa) para un sitio internacional.

Los formatos de fecha varían y, a veces, son difíciles de leer si ahora está acostumbrado. Lástima que muchas personas no se sientan cómodas con ISO 8601. :-(

stesch
fuente
0

Sugeriría usar un menú desplegable para cada campo, asegurándose de etiquetar cada uno como día, mes y año. Un selector de fecha también puede ayudar, pero si el usuario no tiene habilitado JavaScript, no funcionará.

Philip Morton
fuente
Debido a que es un sitio lleno de javascript, no hay posibilidad de que NADA funcione sin JS. Así que este tipo de preocupaciones es inútil ahora :)
Ionuț Staicu
¿Qué pasa si un usuario con discapacidad visual desea utilizar su sitio web?
Philip Morton
1
Si usa nombres de meses y años de cuatro dígitos, se etiquetará automáticamente, ya que no habrá superposición entre los conjuntos de valores.
Dave Sherohman
1
Downvoted: los menús desplegables son MUY molestos para los usuarios, especialmente para este tipo de datos. Ver Nielsen: useit.com/alertbox/20001112.html
Mauricio Scheffer
0

Tomaría un DatePicker. Es el único componente que permite a los usuarios expertos ingresarlo manualmente y guía a los principiantes a ingresar una fecha muy fácilmente.

El calendario no debería aparecer si ingresa presionando la pestaña, sino haciendo clic en un botón. Así que ningún usuario experto se molesta por ello.

guerda
fuente
0

¿Quién no usa jQuery UI DatePicker?

Es configurable para adaptarse a prácticamente cualquier necesidad. El único inconveniente es que si lo incluye con jQuery UI, tiene una huella algo grande.

Actualizar

Parece que algunos de los tamaños de archivo han cambiado, por lo que se actualizan a continuación. Tenga en cuenta que estos números solo serán correctos para la última vez que se actualizaron. Las cosas pueden haber cambiado desde entonces.

  • Tema CSS - 23kb
  • Interfaz de usuario de jQuery - 71kb minificado
  • DatePicker - 38kb
  • Más un par de imágenes (el próximo mes / mes anterior, que estoy bastante seguro de que están animadas)

Pero eso no está tan mal ...

alex
fuente
No se preocupe, puede cortar CSS bastante. Solo quería saber cuál es el mejor método;)
Ionuț Staicu
68k .... eso está mal, como es el tema css de
28k
@redsquare las cosas probablemente hayan cambiado desde que publiqué esto. Siéntete libre de editar mi respuesta. Gracias por hacérmelo saber también.
Alex
para el selector de fechas, solo el ui js personalizado total tiene 38k minificado, con gzip esto es considerablemente más pequeño
redsquare
Recomiendo encarecidamente evitar jQuery datepicker para las fechas de nacimiento. Intenté usarlo, tuvimos muchas quejas de los clientes. Primero fue demasiado difícil retroceder más de un par de años. (30 años requieren 360 clics con la configuración predeterminada). Si agrega la selección del año, muchos usuarios simplemente harían clic en el día primero, lo que oculta el selector de fecha sin tener que elegir el año. Y luego el usuario regresaría y cambiaría solo el año, no haría clic en la fecha, lo que no registraría el cambio de año. Experiencia terrible.
Andrei
0

El selector de fecha y hora de JQueryUI es la mejor opción, ya que permite a los usuarios profesionales ingresar su propio valor en el cuadro de texto o pueden elegirlo del selector.

Configurar el selector para permitir la entrada fácil de cumpleaños o fechas futuras también es bastante fácil:

$ ('# selector de fecha'). selector de fecha ({
    changeMonth: verdadero,
    changeYear: cierto,
    yearRange: '-100: +50'
});

esto muestra algo como esto (no puedo publicar una foto porque soy un nuevo usuario: http://klalex.com/wp-content/uploads/2009/07/picture-1.png )

y yearRange muestra fechas desde DateTime.Now.Year - 100 hasta DateTime.Now.Year + 50

Encontré esto en: http://klalex.com/2009/07/jquery-ui-datepicker-for-birth-date-input/

pajics
fuente
0

Acabo de descubrir un complemento en JSFiddle. Dos posibles alternativas: 1 entrada única O 3 entradas, pero parece una sola ... (use la tecla Tab para ir a la siguiente entrada)

[enlace] http://jsfiddle.net/davidelrizzo/c8ASE/ ¡Parece interesante!

Laurent B
fuente
3
Aquí está el enlace: jsfiddle.net/davidelrizzo/c8ASE
Laurent B
0

puede utilizar el complemento cxcalendar . Parece otro selector de fechas. pero puede elegir el año y el mes en seleccionar después de hacer clic en el título año-mes.

ingrese la descripción de la imagen aquí

legendJSLC
fuente
Esto tiene todos los desafíos de UX que se discutieron anteriormente.
PKHunter
-3

Creé tres menús desplegables para la selección de Fecha de nacimiento y el número de días cambia dinámicamente según la selección de año y mes. http://jsfiddle.net/ravitejagunda/FH4VB/10/

daysInMonth = new Date(year,month,1,-1).getDate();
user3845825
fuente