关于用户无效输入处理的小想法

编写用户界面逻辑时,我们需要处理用户无效输入,或在某些情况下禁止用户操作。要应对这种意外情况,有两类方法:“先发制人”,隐藏无效操作的按钮或界面元素,让用户根本无法进行无效操作;“坐以待毙”,在用户进行无效操作后,弹出错误提示。本文针对这两种方法的优劣进行讨论。

对于这两类方法,我的观点是:“先发制人”比“坐以待毙”更好。

例如,如果需要限制用户的操作频率,可以有两种处理逻辑:在打开界面时就检测限制是否生效,如果当前需要限制,则直接将对应的操作按钮变为灰色禁用状态,不让用户操作(先发制人);也可以在用户点击提交按钮后,再行检测操作频率并弹出错误提示,例如“操作频率过快”(坐以待毙)。在这个例子里,前者能更早将“限制”的信息告知用户,减少用户的无效操作,降低给用户带来的不适。

与上述例子类似,假设我们在做一个选择题的界面,当用户没有选择选项时,不允许其提交。比较好的做法是,在未选择选项时,将“提交”按钮禁用(并可显示适量提示信息,例如“至少选择一项”)。有的设计者可能会在用户点击“提交”按钮后再运行检查逻辑、弹出错误消息,这样给用户的感觉就会比较糟糕。

又例如,要设计一个列表编辑界面(如下图所示),用户能够点击“添加”按钮,在列表中添加新的条目。一种设计逻辑是:期望用户先在文本框中输入文本,然后点击文本框右侧“添加”按钮;在提交时,需要用户保证最下面一个文本框为空,否则会弹出错误提示。这种做法就是一种“坐以待毙”。

我认为更好的解决方法是:不显示最后一行的空文本框,只显示“添加”按钮或图标,如下图所示。这样,用户根本没有误操作的可能性,是“先发制人”。

CC BY-SA 4.0 本作品使用基于以下许可授权:Creative Commons Attribution-ShareAlike 4.0 International License.

WordPress Appliance - Powered by TurnKey Linux