Knockout验证你好世界上没有运行jsfiddle

问题描述:

我想问一个关于异步knockout.js验证在页面加载运行的问题,我试图在jsfiddle上重现该问题。Knockout验证你好世界上没有运行jsfiddle

事情是,我无法得到最基本的例子,尽管我的箱子上运行着更复杂的场景。这有什么问题?

http://jsfiddle.net/C5rSm/4/

我不得不邮编:

<div id="vm"> 
    <input type="text" data-bind="value: validatableField" /> 
    <p data-bind="validationMessage: validatableField"></p> 
    <button data-bind="click: alertValue">value is alerted ok, but doesn't validate</button> 
</div> 

var Vm = function(){ 
    var self = this; 
    self.validatableField = ko.observable().extend({ equal: 2 }); 
    self.alertValue = function(){ 
     alert(self.validatableField()); 
    }; 
}; 

ko.applyBindings(new Vm(), document.getElementById('vm')); 
+0

您在本地使用哪个版本的验证插件?你在使用缩小版还是调试版? – nemesv

没有什么不对您的代码。

但是验证插件上(cdnjs 1.0.2)目前的版本是很老,它具有防止ko.validation.registerExtenders正常工作的错误。此后,此错误has been fixed

,因为你需要在你的小提琴开始打电话ko.validation.registerExtenders()解决方法:

ko.validation.registerExtenders(); 
var Vm = function(){ 
    var self = this; 
    self.validatableField = ko.observable().extend({ equal: "2" }); 
    self.alertValue = function(){ 
     alert(self.validatableField()); 
    }; 
}; 

ko.applyBindings(new Vm(), document.getElementById('vm')); 

演示JSFiddle

+0

一年后,令我惊讶的是,这仍然是如此。 – esvendsen