代码之家  ›  专栏  ›  技术社区  ›  John Nelson

如何处理百岁生日字段?

  •  3
  • John Nelson  · 技术社区  · 16 年前

    “A centenarian 是一个年满100岁或以上的人。

    several ways to prompt a user for Date of Birth 但是我们已经选择了 drop down method .

    您将如何处理最早的可选日期?你会选择一个任意的年份(比如1875年)并填充到现在吗?

    或者,你是否查阅了一些有关破纪录年龄的资料?( Jeanne Calment, age 122 ,再加上几年,然后向后填充?

    5 回复  |  直到 16 年前
        1
  •  7
  •   Michael Koval    16 年前

    因为不管使用什么控件,您都必须执行服务器端验证输入,为什么不使用标准文本输入?

    `<input type="text" maxlength="4"/>
    

    这是:

    1. 消除百岁老人的问题。
    2. 更容易使用,尤其是对于老年人(假设列表按降序排列)。
    3. 较小的页面大小(不需要包括100+ <option>....</option> 标签。

    如果你 必须 使用A <select> Box,我同意你的维基百科方法。记录在案的最年长的人的年龄上限(126 -> 130或140)将相当无风险。

        2
  •  14
  •   Kip    16 年前

    为什么不在文本输入框中输入“1899”或其他内容?收到后,您可以根据使用的任何条件验证它是否为合法数字。我对选择出生年份的列表框感到恼火,因为列表框中不应该有这么多的值。


    重读问题时,假设只有列表框。在这种情况下,130年前对我来说似乎是一个足够好的截止点。如果你担心下一个打破世界纪录的人会碰巧使用你的系统,为什么不使用200年前的系统呢?尽管我仍然认为你应该使用一个文本框。

        3
  •  1
  •   nicojs    16 年前

    我想这要看情况了。你在为年轻人创建一个应用程序吗?

    如果每个人都需要访问应用程序,只需创建一个可配置的检查,并不时更新它。看 http://en.wikipedia.org/wiki/Oldest_people#Ten_oldest_people_currently_living 最早的日期。

    最好使用日期选择器,不要使用具有100+值的令人不快的列表框。

        4
  •  1
  •   Farrell    16 年前

    我对这种数据输入的看法是为了迎合用户,而不是程序员。
    虽然,是的,下拉列表导致的错误处理最少,但对于用户来说,这也很繁琐。

    转到需要验证的文本项。后面需要更多的代码[允许2位年份和4位年份],但对于用户来说这是一种更简单的体验

        5
  •  1
  •   Zed    16 年前

    如果你想坚持下拉列表,只需选择一个足够老的约会。我个人认为下拉列表对用户和您都不好。我觉得从一百个数字列表中选择我的生日很烦人(即使火狐允许我通过输入来选择日期)。但我也认为,一个选择使得人们输入的假年份比输入的年份要多。

    如果你能使用javascript, Combobox 可能是两个世界中最好的。您可以在列表中列出100年,并允许老年人键入。这只存在轻微的道德问题,即你故意让老年人类型=)

    推荐文章