input出生date的最佳用户界面是什么?
出生dateselect器的最佳方法是什么?
- 3个文本input(月/日/年)或一个掩码input。 用户必须使用键盘
- 3个select框。 用户可以使用键盘或鼠标。
- 一个不错的dateselect器 。
我想知道什么是最有用和无问题的解决scheme,所以用户不会感到困惑。
对于高级用户文本input是最好的,如果用户知道date格式,它是非常快的。 对于不那么高级的用户,我build议使用dateselect器。 由于通常你也有高级和非高级用户,我build议文本input和dateselect器的组合。
如果您的目标是确保“用户不会感到困惑”,我认为这是最好的select。
我不会为出生date推荐dateselect器。 首先,你必须浏览到年份(点击,点击,点击…),然后到月份(点击更多),然后find并点击网格上的小号码。
dateselect器是非常有用的,当你不知道你的头顶的确切date,例如你计划在二月第二周的旅行。
虽然这是一个非常古老的问题,但要使生日的input正确,尤其是在registry格中是非常重要的。
我认为没有人比Google帐户注册做得更好:
首先从select框中select月份,然后手动inputdate和年份。 简单。
易于validation。 方便用户正确使用。 从1900年到现在,没有在一个select框中滚动回来的年份。 无需根据月份input更新“日”select框。 在网上很好用。 在手机上效果很好。 适用于所有地区,例如01/10/2014 – 是1月1日还是1月10日? 我预计将来我们会看到这个生日select器格式。
dateselect器只是一个糟糕的解决scheme。 这么多的点击! 在我看来,dateselect器只有在知道一周的哪一天很重要时才有用,例如预订门票。
更新2/6/2016:我来自英国,所以我比较熟悉日/月/年格式,而不是月/日/年。 但是,使用光标select月份的用户,我相信首先select框比使用input>select框>input更容易。 评论date是6月2日,而不是2月6日;)
正如在Jakob Nielsen的文章中提到的那样,对于用户所熟知的数据,应该避免使用下拉列表:
用户熟知的数据菜单,如出生月份和年份。 这样的信息通常被硬连接到用户的手指上,并且不得不从菜单中select这样的选项打破了用于input信息的标准范例,甚至可以为用户创造更多的工作。
理想的解决scheme可能如下所示:
- 为日,月和年提供3个单独的文本框(标记为适当的)
- 根据用户的文化对文本框进行sorting。
- date和月份文本框的大小应该是2位数的input。
- 年文本框的大小应该是4位数字。
- 允许用户input2或4位数的年份。 假设一个2位数字的年份是1900年,并更新文本框以反映这onBlur(或在以下确认步骤)。
- 允许用户input月份编号或月份名称。
编辑:这是我们如何实现我们的DOB选取器:屏蔽文本input字段与HTML5正则expression式来强制在iOS设备上的数字键盘。
生日与其他date不同,因为人们经常习惯于input他们特定的生日。
一个带有示例的文本框清晰,快捷,易于input:
_______ |_______| (example: 31/3/1970)
这应该支持灵活的格式,如1/1/1970或20/07/70。
如果你不得不支持不同的date约定(例如美国和英国)的文化,那么对于那些不理解这个例子的人来说,这可能是很容易出错的。 为了避免这个,你可以使用一个
select月份列表,文本框date和年份 。
_________ __ ____ |March |V| |__| |____|
这消除了日间和月份订购之间的歧义,但是使用起来有点笨拙。
你应该看看Datejs 。
Datejs是一个开源的JavaScriptdate库。
全面,但简单,隐身和快速。 Datejs已经通过所有的审判,并准备罢工。 Datejs不只是parsingstring,而是将它们切成两半。
我也build议DatePicker和字段的组合
看到这个演示 ,dateselect器确实反映了用户在字段中input的date。
不过,它基于DatePicker,但是使用Prototype和Scriptaculous 。 我提到它是为了说明的目的。
我用我的用户尝试过datePicker,但事实certificate它们是一个糟糕的用户界面。 我最终根据他们的要求是有3个文本框,他们可以快速键入[天] [月] [年] 🙁
我感到困扰的是解决scheme的优势,而不是devise。 OP说:“我想知道什么是最有用的,没有问题的解决scheme,所以用户不会感到困惑。” 因此,无论是jQuery还是JavaScript,还是C#或FORTRAN,devise都很重要 – 这是用户体验devise,而不是用户界面devise。 (另一个要求避免不正确和不合逻辑的结构“UX / UI”)。
使用文本input。 使用三个单独的框,分别标记为日,月和年(或月,日,年)。 让用户inputdate。 在相同的交互中混合文本和列表是一件坏事(例如,不要使用年份的文本input,但dateselect器或月份和date的列表)。
使用使用现场格式提示的单个文本字段,例如[日/月/年]不要求格式过于严格。 如果用户在您期望的月份中inputJUN,则在后端使用6月。 如果用户在预计一个月的地方键入6,则在后端使用6月。 如果用户在您期望的月份input06,则在后端使用6月。
使用Occam的Razor作为指导(实际上,大多数情况下数据足够准确)。 减less认知摩擦(不要让用户思考)。
把这两个,使每个更新另一个。 如果用户从dateselect器中selectdate,则很容易修复文本字段中的轻微错误,或者将dateselect器中的文本字段中input的select可视化。
你为什么不testing所有三个select最好的performance? 这似乎是Google网站优化工具testing的一个很好的select。
这可能是因为您拥有的用户types或正在运行的网站types可能会决定您的解决scheme应该与“标准”不同。
我通常使用两个 – 一个dateselect器,以正确的格式填充文本字段。 高级用户可以直接编辑文本框,鼠标快乐的用户可以select使用dateselect器。
如果你担心太空,我通常只在文本框旁边放一个小日历图标。 如果你点击日历图标,它会popupdateselect器。
另外,我发现预先使用指示正确格式(即:“DD / MM / YYYY”)的文本填充文本框是一种很好的做法。 当用户关注文本消失的文本字段时,他们可以input自己的文本字段。
作为这里的老年人之一,在本月下旬出生,我发现生日的下拉菜单令人沮丧。 我通常不得不向下滚动两个下拉菜单,这是尴尬的。 我宁愿input。
如果你可以devise一个控件,使其既可以接受下拉菜单,也可以input,并清除这两个工作,这将是非常好的。
是否使用dateselect器我认为取决于date是多久以前。 如果他们通常是在本月,几乎不会超过几个月,而且你知道Javascript会在周围,那么dateselect器是好的。 如果date不近(比如出生date),我认为这是最好的select:
http://img411.imageshack.us/img411/6328/mockupg.png
请注意,这与Patrick McElhaney的答案不同, 因为年份是文本框,而不是下拉列表 。 从数百个元素的下拉框中select一个数字对于用户来说是非常烦人的。
我认为dateselect器只是让移动更复杂,以input一个人的出生date。
正如已经提到的那样,对于一年的文本框,几天和几个月的下拉列表组合似乎是最有效的。 用这种方式input一个出生date只需要不到10秒钟,这比一个dateselect器快得多:由于所有用户都应该学会用来完成一个表格的tab键,所以从一个表格元素到下一个。
至less在Macintosh下(我不知道Windows),你也可以使用键盘在select框中访问date:多亏了Tab键,你将焦点放在表单元素上,然后按下箭头键列表,然后键入例如1967年,你眨眼间就到了那里。
我更喜欢一个国际站点的dateselect器(和一个logging格式的input框作为后备)。
date格式各不相同,有时很难阅读,如果你现在习惯了。 太糟糕了,很多人对ISO 8601并不满意::-(
我build议使用每个字段的下拉菜单,确保每个标签为日,月和年。 dateselect器也可能有帮助,但是如果用户没有启用JavaScript,它将不起作用。
我会采取DatePicker。 这是唯一一个允许专家用户手动input的组件,可以帮助新手轻松inputdate。
如果您通过按Tab键进入日历,则不应该popup日历,而是单击button。 所以没有专家用户对此感到恼火。
谁不使用jQuery UI DatePicker?
这是可configuration的,以满足几乎任何需求。 唯一的缺点是,如果你用jQuery UI包含它,它有足够大的占用空间。
更新
一些文件大小似乎已经改变,所以它们在下面更新。 请记住,这些数字只有在上次更新时才是正确的。 从那时起事情可能已经改变了。
- CSS主题 – 23kb
- jQuery UI – 71kb缩小
- DatePicker – 38kb
- 再加上一些图片(下个月/上个月,我很肯定会加倍)
但是,这不是太糟糕…
JQueryUIdateselect器是最好的select,因为它允许专业用户在文本框中input自己的值,或者他们可以从select器中select它。
设置select器,以便轻松input生日或未来的date也很容易:
$( '#dateselect器')。dateselect器({ changeMonth:true, changeYear:true, yearRange:'-100:+50' });
这显示了这样的东西(不能张贴一张照片,因为我是新用户: http : //klalex.com/wp-content/uploads/2009/07/picture-1.png )
yearRange显示date从DateTime.Now.Year – 100到DateTime.Now.Year + 50
发现这个: http : //klalex.com/2009/07/jquery-ui-date-ker-ker-for-birth-date-input/
我刚刚在JSFiddle上发现了一个插件。 两种可能的替代scheme:1个单input或3个input,但看起来像一个单一的…(使用Tab键进入下一个input)
我想你可以试试plugin birthdaypicker ,
你可以使用插件cxcalendar 。 它看起来像其他datepicker。 但是您可以在点击年份标题后select年份和月份。
我为出生dateselect创build了三个下拉列表,并根据年份和月份selectdynamic更改了天数。 http://jsfiddle.net/ravitejagunda/FH4VB/10/
daysInMonth = new Date(year,month,1,-1).getDate();