什么事件触发Javascript表单字段验证和格式化?

bmb*_*bmb 10 javascript validation usability

首先我要说的是,我们验证了服务器端的每个字段,因此这是一个关于客户端可用性的问题.

关于何时使用javascript验证和格式化html表单输入字段的传统智慧是什么

例如,我们有一个电话号码字段.我们允许数字,空格,括号和连字符.我们希望该字段有十位数.此外,我们希望该字段看起来像(123)456-7890,即使用户没有这样输入.

好像我们可以

  • 用户退出字段时验证并格式化.
  • 对输入的每个字符进行验证和格式化.
  • 拦截击键并防止用户输入错误的字符.
  • 以上的一些组合(例如,输入格式和退出时验证,防止输入和退出格式等)
  • [已添加 ]等待并在用户点击提交时进行所有验证和格式化.

我已经看到它完成了所有这些方法,但我无法从可用性的角度找到最佳(甚至普遍接受)的信息,更重要的是,为什么.

[ 编辑:一些澄清]

我们绝对不执行任何格式标准.当我说格式时,我的意思是我们将使用javascript重写事物,使它们看起来很好.如果用户键入1234567890,我们将其更改为(123)456-7890.没有可能失败的"格式化规则".

我将此与验证区分开来,因为如果它们没有输入足够的数字,我们必须让它们修复它.

我想我应该将这个问题重新解释为"什么是关于何时验证以及何时格式化......的传统智慧?

到目前为止答案中的好消息!

编辑:我接受我自己的答案,希望其他人会发现这个链接和我一样有用.

bmb*_*bmb 1

到目前为止,最好的答案不是答案,而是评论(见上文)。我将其添加为答案,以防有人在评论中错过它。

请参阅以下有关 A List Apart 的文章。

Web 表单中的内联验证 作者:Luke Wroblewski