1

在我的公司中,我看到了几种在用户输入无效时通知用户的方法(我们的验证通常在用户单击某种形式的“提交”按钮时完成)。

以下是我见过的最常见的方法:

  • 使用ErrorProvider类来传达哪些控件包含无效输入。(这是我目前的偏好,因为验证可以一次性完成,用户可以轻松识别哪些控件包含无效输入。

  • 验证所有控件中的输入并编译要显示给用户的消息列表。验证例程完成后,立即向用户显示所有“无效输入”消息(通过 MessageBox)。

  • 依次验证每个控件中的输入,并在发现无效数据后通知用户(通过 MessageBox)。(我不喜欢这种方法,因为如果 Control_A 和 Control_B 都包含无效数据,用户将不得不尝试提交数据两次才能看到两个验证消息。

您认为有效/高效地通知用户无效输入的最佳方式是什么?

4

3 回答 3

2

使用IDataError,您可以组合前两种方法,因为它既允许您为单个控件提供错误,也允许为整个视图提供聚合错误消息。

在某些情况下,您的验证逻辑可能取决于几个不同输入值的组合,因此仅将验证绑定到每个控件会过于禁止。另一方面,在许多情况下,您仍然希望能够为每个控件提供错误消息,这是有意义的。IDataError 允许您两者都做。最常见的 UI 实现是在每个无效控件旁边都有一个视觉提示(例如闪烁的图标)。

每次用户执行无效操作时都会弹出一个模式对话框(消息框),这是一种非常有效的惹恼用户的方式——他们失去了上下文,不得不花时间点击“确定”按钮才能使对话框消失。

于 2009-06-27T18:49:15.080 回答
1

当用户按下 OK 时,我们会检查所有控件。

我们用特殊颜色标记每个无效值,并在消息框中列出所有错误。

于 2009-06-27T17:28:41.757 回答
1

如果技术允许并且不损害逻辑流程或可用性,最好尽快通知用户错误。(错误提供者,Ajax,任何东西)

当用户必须多次提交表单才能确定是否使用了用户名时,这总是令人沮丧!

我对此进行了可用性研究:大多数用户厌恶地离开页面,除非他们真的想要注册另一端的任何东西。

于 2009-06-27T17:28:57.573 回答