2

当用户将焦点更改为同一数据输入表单上的另一个控件时,我收到了要求对文本框内容进行规范化的要求。规范化示例:

  • 修剪输入开头和结尾的空白
  • 如果文本框为空且无效,则将文本框的内容替换为默认值

我有一种感觉,这不符合良好的 GUI 设计。我已阅读文本框的 Windows UX 指南,但没有立即找到任何相关规则。

以这种方式规范化文本框内容是否可以接受?

4

6 回答 6

5

我以前肯定见过这种情况(现在的例子让我望而却步),但我个人不喜欢 UI 改变我的输入。如果 UI 足够聪明,可以更改我对我的输入,那么它应该按原样接受它并在需要处理它时更改值。

当输入自动更改时,您现在强制用户停止并询问自己为什么会更改以及他们是否做错了什么或应用程序是否有错误。不要让用户思考!

于 2009-10-28T14:59:12.273 回答
4

通常,您应该完全接受用户输入,因为他们输入了它。用户这样做是有充分理由的。例如,假设用户输入了一个外国地址,然后您的应用程序试图将其格式化为国内地址。至少,用户以他们习惯的方式输入输入,因此更改它会使他们难以交叉检查它。

但是,有几个例外:

  • 为不完整的输入添加默认值。添加用户离开的输入(例如,年份到日期,单位到尺寸)可以提供关于应用程序如何解释否则会模棱两可的输入的良好反馈。这也鼓励用户使用默认值,使他们的输入更有效率。

  • 解决其他歧义。如果用户的格式可以解释,则更改为明确的格式。例如,如果您有国际用户,您可能希望将“9-8-09”更改为“2009 年 9 月 8 日”(或“2009 年 8 月 9 日”),以提供有关您的应用认为月份和日期的反馈。

  • 未提供时添加分隔符。自动将标准或什至任意分隔符添加到长字母数字字符串(例如,电话号码、信用卡号、序列号)提供了用户可以更轻松地交叉检查的输入显示。有时,用户可能会输入一个不带分隔符的字符串,以加快速度,或者因为他们是网站滥用网络的受害者,这些网站甚至拒绝接受标准分隔符。

  • 拼写、语法和大小写更正。用户通常会欣赏这一点,但前提是还有一种方法可以覆盖它。一些用户喜欢使用“i”作为第一人称代词。

如果该字段被多个用户使用,那么您可能应该以某种适合大多数用户的标准方式自动格式化该值,但这应该在值存储在后端时完成,而不是在焦点离开时完成场地。例如,如果用户输入 15:30 的时间,只要用户查看页面,它就应该保持为 15:30。但是,下一次用户(任何用户)检索数据时,它应该显示为下午 3:30(如果这是您的大多数用户习惯于查看时间的方式)。

这种后端格式适用于修剪空白,以便所有用户可以一致地搜索、查找和排序字段。用默认值替换空白值(或任何无效值)可能不是一个好主意,因为用户不太可能期望获得该值。在明显空白 == 无 == 零的情况下,可能会将数字字段的空白更改为 0,但是这可能应该在存储在后端时完成,而不是在字段本身中。如果空白不明确(例如,可能表示 0 或可能表示“我不知道”),则上面的第二个项目符号适用,并且您可能希望在失去焦点时在该字段中自动更正。

当然,如果您的用户在需要格式化数据类型的方式上有所不同,那么您可以拥有不同的应用变体,为不同的用户组以不同的方式显示数据类型,或者您可以制作数据类型的格式用户偏好,但这确实是另一个问题。

于 2009-11-13T23:47:41.473 回答
2

如果用户想要它,而利益相关者要求它,那么是完全安全的。修剪是很常见的。当您谈论用数字填充文本框时,替换很常见。(一个 0 而不是一个空白)。

于 2009-10-28T14:59:38.577 回答
1

我很确定我见过执行此操作的 Microsoft Office 版本 - 输入“pt”。例如,在以点为单位的值之后。微软的背书应该是一个好兆头。

于 2009-10-28T15:00:04.583 回答
1

这是一个相当标准的功能,尤其是空白修剪。默认值替换会引发更大的标志,因为它不太常见。

于 2009-10-28T14:56:57.943 回答
1

我们有很多这样的要求。强制使用默认值而不是空格的原因是它在报告中看起来更好,或者如果客户想要查看实时系统。空白看起来有点像“懒得输入任何东西”。出于类似的原因,我们经常将文本大写以保持一致性,因为用户从不使用一致的格式。

于 2009-10-28T15:15:45.720 回答