Knockoutjs 验证问题 - self.errors().length

Posted

技术标签:

【中文标题】Knockoutjs 验证问题 - self.errors().length【英文标题】:Knockoutjs Validation issue - self.errors().length 【发布时间】:2014-06-30 22:50:26 【问题描述】:

我已经包含了:

淘汰赛.3.0.1.js

knockout.validation.debug.js

jquery.validate.js

错误是:(来自 Firebug)

TypeError: self.errors is not a function

除了验证所有其他代码都是完美的。

我的代码

var UserViewModel = function (UserName, Password) 
    var self = this;

    self.UserName = ko.observable(UserName).extend(
        required: 
            message:"Please enter User Name"
        
    );
    self.Password = ko.observable(Password).extend(
        required: 
            message: "Please enter Password"
        
    );


    this.loginClick = function () 

        if (self.errors().length == 0)
        
            alert('no errors');
          //  var strJSON = ko.toJSON(self); //Convert whole model to json
        
        else
        
            alert("Please check your submission");
            self.errors.showAllMessages();
        
        alert("function called");

    ;
;

ko.applyBindings(new UserViewModel('', ''));

【问题讨论】:

你能提供jsfiddle吗,很明显error属性不在self范围内 jsfiddle.net/d8heg - fsfiddle 你在哪里定义 self.errors()? 我没有定义,我认为是在 knockoutjs 库中 不,不是,您需要指定自己的errors 对象。您可能应该更多地阅读 knockout.validation 插件。 【参考方案1】:

您忘记创建验证组:

this.errors = ko.validation.group(self);

创建验证组,错误将得到解决

【讨论】:

以上是关于Knockoutjs 验证问题 - self.errors().length的主要内容,如果未能解决你的问题,请参考以下文章

Knockoutjs 验证问题 - self.errors().length

KnockoutJS 实时验证本地化

使用 knockoutjs 时 Chrome 中的 Maxlength 约束验证异常

html KnockoutJSで,验证通した値でCSSの変更を行いたい场合のサンプル

KnockoutJS,ajax 调用后更新 ViewModel

KnockoutJS - 可观察对象的可观察数组,包含来自 SQL 服务器的数据