【问题标题】:KnockOut.js validation always true / errors.length = 0KnockOut.js 验证始终为真/errors.length = 0
【发布时间】:2019-07-12 23:35:22
【问题描述】:

我是使用淘汰赛 js 验证插件的新手。我的 observables 在另一个函数上。但似乎 User.errors = ko.validation.group(User) 和 User.errors = ko.validatedObsevable(User) 无法读取错误/无法验证我的 obsevables。

我尝试了一些小提琴代码:http://jsfiddle.net/KHFn8/3238/

在那个例子中,Conditions 和 observables 在同一个函数上。

这是我的 js 代码:

            var User = function () {
                    this.UserId = ko.observable();
                    this.Fullname = ko.observable().extend({ required: true });
                    this.Username = ko.observable().extend({ required: true });
                    this.StartedDate = ko.observable().extend({ required: true });
                    this.Email = ko.observable().extend({ required: true });
                    this.Facebook = ko.observable().extend({ required: true });
                    this.Address = ko.observable().extend({ required: true });
                    this.MobileNumber = ko.observable().extend({ required: true });
                    this.Birthdate = ko.observable().extend({ required: true });
                    this.PositionId = ko.observable().extend({ required: true });
            }

            UserModel function {

                    self.Save = function () { 

                    if (User.errors().length == 0) {
                        alert(User.errors().length);
                    } else {
                        alert('Please check your submission.');
                        User.errors.showAllMessages();
                    }
            }

            User.errors = ko.validation.group(User);

            ko.applyBindings(new userModel());

我只想验证必填字段并在提交/保存按钮上显示错误消息

【问题讨论】:

    标签: knockout.js knockout-validation


    【解决方案1】:

    好的,尝试了 3 天之后.. 我知道答案是什么了..

    我把 User.errors = ko.validation.group(User);发挥作用

    var User = function(){
        ...
        this.errors = ko.validation.group(this); //change 'user' to 'this'
    }
    
    UserModel function {
        self.Save = function () { 
                if (this.errors().length == 0) {
                    alert(this.errors().length);
                } else {
                    alert('Please check your submission.');
                }
        }
    }
    ko.applyBindings(new userModel());
    

    【讨论】:

    • 这是什么语法UserModel function {}
    • 那是我的 viewModel.. :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 2016-05-05
    • 2020-12-21
    • 2019-12-11
    相关资源
    最近更新 更多