当用户将焦点更改为同一数据输入表单上的另一个控件时,我收到了要求规范化文本框内容的要求。示例规范化:
我觉得这与良好的GUI设计不符。我已阅读Windows UX Guidelines for text boxes,但我没有立即找到任何相关规则。
以这种方式规范化文本框内容是否可以接受?
答案 0 :(得分:5)
我之前肯定已经看到了这个(现在我没看到这个例子)但是当UI改变我的输入时我个人不喜欢它。 如果用户界面足够聪明,可以改变我对我的输入,那么它应该按原样接受并在需要处理时更改值。
当输入自动变化时,您现在强制用户停止并询问自己为何更改以及是否出错或应用程序出错。 不要让用户思考!
答案 1 :(得分:4)
通常,您应该完全接受用户输入。用户有机会这样做是有充分理由的。例如,想象一个用户输入一个外国地址,然后你的应用程序将其搞砸,试图像国内地址一样格式化。用户至少以他们习惯的方式输入输入,因此更改它会使他们难以交叉检查。
但是,有几个例外:
将默认值添加到不完整的输入。添加用户离开的输入(例如,年份到日期,单位到维度)提供关于应用程序如何解释输入的良好反馈,否则将是模糊的。这也鼓励用户使用默认值,使他们的输入更有效。
解决其他歧义。如果用户的格式对解释开放,则更改为明确的格式。例如,如果您有国际用户,则可能需要将“9-8-09”更改为“2009年9月8日”(或“2009年8月9日”),以提供有关您的应用认为的月份和日期的反馈。
未提供分隔符时添加分隔符。自动地将标准或甚至任意分隔符添加到长字母数字串(例如,电话号码,信用卡号,序列号)提供了输入显示,用户可以更容易地交叉检查。有时,用户可能会输入不带分隔符的字符串,以便更快或因为他们是拒绝接受标准分隔符的网站滥用网络的受害者。
拼写,语法和大写校正。用户经常会欣赏这一点,但前提是还有一种方法可以覆盖它。有些用户喜欢用“i”作为第一人称代词。
如果该字段由多个用户使用,那么您可能应该以适合大多数用户的某种标准方式自动格式化该值,但这应该在值存储在后端时完成,而不是在焦点离开了这个领域。例如,如果用户输入15:30的时间,则只要用户查看该页面,它就应该保持为15:30。但是,下次用户(任何用户)检索数据时,它应显示为下午3:30(如果这是您的大多数用户习惯看时间的方式)。
此类后端格式应用于修剪空白,以便所有用户可以一致地搜索,查找和排序字段。用默认值替换空值(或任何无效值)可能不是一个好主意,因为用户不太可能预期获得该值。在显然空白== none == 0的情况下,数字字段可能会将空白更改为0,但同样可能应该在存储在后端而不是字段本身时完成。如果空白不明确(例如,可能意味着0或可能意味着“我不知道”),则上面的第二个子弹适用,并且您可能希望在焦点丢失时在字段中自动更正。
当然,如果您的用户在格式化数据类型方面有所不同,那么您可以使用不同的应用程序变体,以不同的方式为不同的用户组显示数据类型,或者您可以使用数据类型是用户偏好,但这确实是另一个问题。
答案 2 :(得分:2)
如果用户想要它,并且利益相关者要求它,那么是非常安全的。 修剪很常见。当您谈论用数字填充文本框时,替换很常见。 (0而不是空白)。
答案 3 :(得分:1)
这是一个相当标准的功能,尤其是空白修剪。默认值替换会引发一个更大的标志,因为它不太常见。
答案 4 :(得分:1)
我很确定我已经看到过这样做的Microsoft Office版本 - 把“pt”。例如,在积分值之后。微软的认可应该是一个好兆头。
答案 5 :(得分:1)
我们有很多这样的要求。强制使用默认值而不是空白空间的原因是它在报告中看起来更好或者客户端想要查看实时系统。空白看起来有点像“不能打扰输入任何东西”。出于类似的原因,我们经常将文本大写以保持一致性,因为用户从不使用一致的格式。