今日里版友Charline同志问了一个关于禁用非法字符的问题。这个问题的处理方法很多也很简单,大多数的处理趋向于给出提示。其实给出提示并非是一种好的处理方法,其原因在于弹出的提示会打断用户的输入。站在用户的角度考虑,这当然不是一个好的处理方法。好的处理方法是用户在输入非法字符时,光标停留在文本末尾,什么也没发生。也就是给用户感觉非法字符是输入不进去的。
所以这个问题的处理,应该用更改事件。在更改事件中我们取出用户输入的最后一个字符,看看这个字符是否是非法字符,如果是的话就用空字符替换它。你可能会说,你怎么知道用户不是敲击的是一个词组呢?这当然是一个问题,不过非法字符组成词组的可能性几乎为0。好像很难找到将非法字符嵌入一个词组的方法。所以,你尽可以大胆的假设,在客户端不存在嵌入有非法字符的词组。有了这个假设,截取最后一个字符进行判断也就成为了可能。
站在用户的角度,是一种思维的习惯。有了这种习惯,你就可能写出易用性很高的程序来了。
视图: