首先让我说,我们验证服务器端的每个字段,所以这是一个关于客户端可用性的问题。
关于何时使用 javascript 验证和格式化 html 表单输入字段的传统智慧是什么?
例如,我们有一个电话号码字段。我们允许使用数字、空格、括号和连字符。我们希望该字段有十位数字。此外,我们希望该字段看起来像 (123) 456-7890,即使用户没有那样键入它。
好像我们可以
- 当用户退出该字段时对其进行验证和格式化。
- 对输入的每个字符进行验证和格式化。
- 拦截击键并防止用户输入错误的字符。
- 以上的一些组合(例如,进入时的格式和退出时的验证,进入时的阻止和退出时的格式等)
- [新增] 当用户点击提交时,等待并做所有的验证和格式化。
我已经看到它以所有这些方式完成了,但我无法从可用性的角度找到关于什么是最好的(甚至是普遍接受的)的信息,更重要的是,为什么。
[编辑:一些澄清]
我们绝对不会强制执行任何格式标准。当我说格式时,我的意思是我们将使用 javascript 来重写东西,使它们看起来不错。如果用户键入 1234567890,我们将其更改为 (123) 456-7890。没有可能失败的“格式化规则”。
我将此与验证区分开来,因为如果他们没有输入足够的数字,我们必须让他们修复它。
我想我应该将这个问题改写为“关于何时验证以及何时格式化......的传统智慧是什么?
到目前为止,答案中的信息很好!
编辑:我在下面接受我自己的答案,希望其他人会发现这个链接和我一样有用。