user-interface - 从用户那里获取日期/时间输入的最佳方法是什么?

标签 user-interface language-agnostic user-input

这是一个多年来一次又一次被重新发明的轮子。

问题:用户需要输入日期/时间

基本注意事项

  • 我们希望让用户尽可能轻松地输入所需的日期/时间
  • 有些应用程序需要历史日期,有些应用程序只需要 future 日期,有些需要同时处理
  • 我们要防止用户输入乱码数据
  • 我们希望尽可能积极地自动填充此控件。
  • 我们希望该控件尽可能可重用。

  • 流行的解决方案包括:
  • 文本框
  • 组合框
  • 弹出式日历
  • 服务器端和/或客户端验证
  • 警告用户不良数据的各种方式

  • 有大量的即食解决方案,但我正在寻找一些更一般的信息。是否对各种日期时间控制方法进行了可用性研究?那里有“最佳”日期时间控制吗?是否有任何完善的“注意事项”?

    相关问题:Best GUI control(s) to describe a time range

    最佳答案

    我的偏好是旁边带有省略号按钮的文本输入:

    Enter a date [        ] [...]
    

    省略号会弹出一个日历来填充文本输入,但用户可以根据需要输入日期。应在按下表单的“确定”按钮时进行验证 - 根据我的经验,尝试逐个字符地进行日期验证注定要失败。

    验证应该是复杂的,并允许像这样的表达式
    "today"
    "Tomorrow"
    "23 Jan"
    

    等等。

    编辑:在回复一些评论时,可以在文本编辑失去焦点时进行验证(尽管我讨厌这种事情),在这种情况下,编辑内容可能会从“23 Jan”更改为“23-01-2009”以表明表达被理解。

    关于user-interface - 从用户那里获取日期/时间输入的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/579354/

    相关文章:

    c++ - 设计练习最好使用 mfc

    functional-programming - 何时使用函数式编程语言?

    java - 为什么是S和T而不是A和B?

    java - 关闭Scanner会影响性能吗

    java - 将用户输入字符串转换为大写 Java

    c++ - 如何设置 QCheckBox 指示器的大小?

    java - NetBeans 8 中的远程调试 GUI Java 应用程序 (swing)

    flutter - 如何在Flutter中在图像上叠加图标?

    algorithm - 同步两个相关对象列表的标准算法是什么?

    javascript - 单击鼠标更改视频?