【问题标题】:Knockoutjs Validation issue - self.errors().lengthKnockoutjs 验证问题 - 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 插件。

标签: jquery asp.net-mvc validation asp.net-mvc-4 knockout.js


【解决方案1】:

您忘记创建验证组:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-03
    • 2020-06-23
    • 1970-01-01
    • 2012-03-26
    • 2014-03-11
    • 2012-12-17
    • 1970-01-01
    • 2013-08-26
    相关资源
    最近更新 更多