简体   繁体   English

淘汰赛JS验证不起作用

[英]Knockout JS Validation not working

I am a newbie in Knockout JS. 我是Knockout JS的新手。 i want to apply validations in KO. 我想在KO中应用验证。 i have used plugin knockout.validation.min.js . 我已经使用了插件基因敲除.validation.min.js。 I have implemented it like this but not working 我已经像这样实现了,但没有用

My View Model 我的视图模型

 $(document).ready(function myfunction() {

        ko.applyBindings(new EmployeeKoViewModel());

    })
    var EmployeeKoViewModel = function () {
    var self = this;
        self.EmpId = ko.observable()
        self.Name = ko.observable("").extend({ required: { message: "please enter employee name " } });
        self.City = ko.observable("").extend({ required: { message: "please enter employee city " } });
        self.Employees = ko.observableArray();


             //GetEmployees();
            var EmpData = {
                EmpId: self.EmpId,
                Name: self.Name,
                City: self.City,

            };
            function GetEmployees() {
                $.ajax({
                    type: "GET",
                    url: "/Employee/About",
                }).done(function (data) {

                    self.Employees(data);
                }).error(function (ex) {
                    alert("Error");
                });
            }
        self.save = function () {
            var EmployeeKoViewModel.errors = ko.validation.group(self);
            if (!EmployeeKoViewModel.errors().length <= 0) {
                EmployeeKoViewModel.errors.showAllMessages();
                return false;
            }
            $.ajax({
                type: "POST",
                url: "/Employee/Save",
                data: ko.toJSON(EmpData),
                contentType: "application/json",
                success: function (data) {
                    self.EmpId(data.EmpId);
                    GetEmployees();

                },
                error: function () {
                    alert("Failed");
                }
            });
            //Ends Here
        };
}

I have created a fiddle it is working when i comment GetEmployees() method but not working with it 我创建了一个小提琴 ,当我注释GetEmployees()方法但不起作用时,它正在工作

At this line 在这条线

var EmployeeKoViewModel.errors = ko.validation.group(self);

you are trying to create a variable, but the syntax is like creating an object with a property which is of course invalid. 您试图创建一个变量,但是语法就像创建一个带有属性的对象,该属性当然是无效的。 In order to fix this you can initialize your object first: 为了解决这个问题,您可以先初始化您的对象:

var EmployeeKoViewModel = {};
EmployeeKoViewModel.errors = ko.validation.group(self);
if (!EmployeeKoViewModel.errors().length <= 0) {
    EmployeeKoViewModel.errors.showAllMessages();
    return false;
}

Here is a working jsFiddle 这是一个工作的jsFiddle

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM