淘汰验证 - 节流异步验证

时间:2014-02-15 21:13:15

标签: knockout.js knockout-validation

假设我有一个“唱歌”形式,其中包含客户端和服务器端验证。这是电子邮件字段的验证:

  • 客户端验证:必需&有效
  • 服务器端(异步)验证:唯一

我希望它的工作方式是尽可能快地执行客户端验证(必需和有效)(没有限制 - 输入“afterkeydown”),同时服务器端验证受到限制并在执行时执行用户停止输入。

问题是Knockout“throttle extender”返回一个新的dependentObservable,现在所有的验证都受到限制。我不能单独对不同的验证部分进行限制。

我考虑过仅针对唯一/限制验证创建第二个计算的电子邮件,但它没有意义,因为它即使电子邮件无效也会触发,并且会使代码更复杂。

任何想法如何在不使解决方案太糟糕的情况下完成这项工作?

编辑#1

我正在尝试做的一个很好的例子是Twitter网站上的“注册”表单:https://twitter.com/signup。输入用户名时,Twitter会自动检查可用性(在一些限制之后)并提供反馈(无需离开现场)。

1 个答案:

答案 0 :(得分:0)

我最终修改了Knockout-Validation。

我不想限制特定字段(仅异步部分)的整个验证。使用Knockout框架提供的油门无法做到这一点。在这种情况下,它是一个验证问题(限制),所以我认为将它包含在验证框架中是有意义的。

我将尝试在Knockout-Validation repo上发出pull请求,并在此处回发结果。