Knockout.js 我应该如何同时使用淘汰验证和Knockcout X-editable?

Knockout.js 我应该如何同时使用淘汰验证和Knockcout X-editable?,knockout.js,twitter-bootstrap-3,knockout-validation,x-editable,Knockout.js,Twitter Bootstrap 3,Knockout Validation,X Editable,我在ASP.NET项目中使用Bootstrap、Knockout和X-editable以及Knockout绑定。 我无法使验证生效。根据淘汰赛x-editable: 如果您使用的是knockout.validation,那么我已经为可观察对象的isValid for editable.validate连接了一个调用。要工作,必须将新值推送到可观察对象中,然后验证,然后恢复。如果您已订阅更改,您将看到它们。不是最好的选择,但很有效 没错,isValid被调用。我正在设置敲除变量,如下所示: sel

我在ASP.NET项目中使用Bootstrap、Knockout和X-editable以及Knockout绑定。 我无法使验证生效。根据淘汰赛x-editable:

如果您使用的是knockout.validation,那么我已经为可观察对象的isValid for editable.validate连接了一个调用。要工作,必须将新值推送到可观察对象中,然后验证,然后恢复。如果您已订阅更改,您将看到它们。不是最好的选择,但很有效

没错,isValid被调用。我正在设置敲除变量,如下所示:

self.num1 = ko.observable().extend({ number: true, min: 0.01, max: 10e10 });

在我的cshtml中,我包括bootstrap-editable.css和bootstrap-editable.js、knockout-{version}.js、knockout.validation.js、knockout.x-editable.js。控制台上没有错误消息,x-editable对话框很好地弹出,值发生了变化。然而,验证并没有发生。我认为x-editable会将验证传递到我定义的敲除验证本身。我应该实现任何isValid函数还是什么?如果我实现了isValid,我将如何触发敲除验证?我迷路了。

验证只对值有效,并且选择了现成的选项,如果使用自定义绑定,则需要使用ko.Validation.makebindingHandlerValidable


我的配置实际上是这样的:self.num1=ko.observable.extend{number:true,min:0.01,max:10e10,numeric:2};。最后一件事是我自己的验证绑定,它干扰了ko验证,没有验证发生,也没有错误消息

如果要使用自己的验证,请执行以下操作:

关于敲除X可编辑验证绑定的另一件事:

要工作,必须将新值推送到可观察对象中,然后验证,然后恢复。如果您已订阅更改,您将看到它们


因此,您将看到更多的更改,这些更改是由绑定本身引起的,而不仅仅是您的值更改。如果订阅绑定变量,您需要以某种方式过滤掉它们。

您是否使用ko.validation.configure配置了敲除验证?我应该这样做吗?让我查一查,好的。你需要这样做,你可以调用init,你调用了吗?你使用敲除验证进行特殊验证。看看
ko.validation.makeBindingHandlerValidatable("selectedOptions");