Knockout.js 淘汰验证-油门异步验证

Knockout.js 淘汰验证-油门异步验证,knockout.js,knockout-validation,Knockout.js,Knockout Validation,假设我有一个“sing-up”表单,它混合了客户端和服务器端验证。这是电子邮件字段的验证: 客户端验证:必需且有效 服务器端(异步)验证:唯一 我希望它的工作方式是尽可能快地执行客户端验证(必需和有效)(无限制-输入“afterkeydown”),而服务器端验证是限制的,并在用户停止键入时执行 问题是敲除“throttle extender”返回一个新的dependentObservable,所有验证现在都被限制。我无法将节流单独应用于不同的验证部分 我曾想过只为唯一/限制验证创建第二个计算

假设我有一个“sing-up”表单,它混合了客户端和服务器端验证。这是电子邮件字段的验证:

  • 客户端验证:必需且有效
  • 服务器端(异步)验证:唯一
我希望它的工作方式是尽可能快地执行客户端验证(必需和有效)(无限制-输入“afterkeydown”),而服务器端验证是限制的,并在用户停止键入时执行

问题是敲除“throttle extender”返回一个新的dependentObservable,所有验证现在都被限制。我无法将节流单独应用于不同的验证部分

我曾想过只为唯一/限制验证创建第二个计算电子邮件,但这没有意义,因为即使电子邮件无效,它也会触发,这会使代码更加复杂

你知道如何在不让解决方案变得太糟糕的情况下实现这一点吗

编辑#1


我正在尝试做的一个很好的例子是Twitter网站上的“注册”表单:。当输入用户名时,Twitter将自动检查可用性(经过一些限制后)并提供反馈(无需离开该字段)。

我最终修改了敲除验证

我不想限制特定字段(仅异步部分)的整个验证。这不能用敲除框架提供的节流阀来完成。在本例中,这是一个验证问题(节流),因此我认为将其包括在验证框架中是有意义的


我将尝试对敲除验证repo发出拉取请求,并将结果发回此处。

您是否尝试过对整个对象进行验证,只有在其他验证程序正常时才会触发该验证?我是否可以建议,对电子邮件地址之类的对象进行逐次击键验证对用户非常不利?在用户输入完电子邮件地址之前,您无法确定其有效性;当用户正在输入最终有效的内容时,抛出一条错误消息是非常令人不快的。在用户试图离开该字段之前,不要验证该字段。@ebohlman让我不同意您的意见。我认为用户应该尽快得到反馈。Twitter似乎与我的观点相同: