代码之家  ›  专栏  ›  技术社区  ›  Wim Coenen

当文本框内容失去焦点时是否可以规范化?

  •  2
  • Wim Coenen  · 技术社区  · 15 年前

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

    • 在输入的开始和结束处的空白被修剪
    • 如果文本框为空且无效,请用默认值替换文本框的内容。

    我觉得这不符合良好的图形用户界面设计。我读过 Windows UX Guidelines for text boxes 但我没有立即找到任何相关的规则。

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

    6 回复  |  直到 15 年前
        1
  •  5
  •   cagreen    15 年前

    我以前肯定看到过这种情况(我现在还没有看到例子),但我个人不喜欢当UI改变我的输入时。 如果用户界面足够智能,可以更改我对它的输入,那么它应该按原样接受它,并在需要处理它时更改它的值。

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

        2
  •  4
  •   Michael Zuschlag    15 年前

    一般来说,您应该接受用户输入,而不是他们输入的内容。用户这样做很有可能是有原因的。例如,假设一个用户输入了一个外国地址,然后你的应用程序就把它弄乱了,试图把它格式化成一个国内地址。至少,用户以他们习惯的方式输入输入,因此更改输入会使他们很难对其进行交叉检查。

    但是,有几个例外:

    • 将默认值添加到未完成的输入。添加输入用户留下的(例如,年到日期,单位到维度)提供了关于应用程序如何解释输入的很好反馈,否则将模棱两可。这还鼓励用户使用默认值,从而提高输入效率。

    • 解决其他模棱两可的问题。如果用户的格式可供解释,则更改为明确的格式。例如,如果您有国际用户,您可能希望将__9-8-09_157;更改为_156;2009年9月8日_157;(或_156;2009年8月9日_),以提供关于您的应用程序所认为的月和日的反馈。

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

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

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

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

    当然,如果您的用户需要格式化数据类型的方式有所不同,那么您可以为不同的用户组使用不同方式显示数据类型的应用程序的不同变体,或者您可以将数据类型的格式设置为用户首选项,但这实际上是另一个问题。

        3
  •  2
  •   gbianchi    15 年前

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

        4
  •  1
  •   Hank Gay    15 年前

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

        5
  •  1
  •   Mark Ransom    15 年前

    我很肯定我见过微软Office的版本,比如在点后面加上“pt”。微软的支持应该是一个好迹象。

        6
  •  1
  •   MartW    15 年前

    我们有很多这样的要求。强制使用默认值而不是空白区域的原因是报表中的值更好,或者客户机希望看到活动系统。一个空白看起来有点像“不想输入任何东西”。出于类似的原因,为了一致性,我们经常使用大写的文本,因为用户从不使用一致的格式。