gpt4 book ai didi

javascript - Knockout JS 验证不起作用

转载 作者:行者123 更新时间:2023-12-03 09:46:51 25 4
gpt4 key购买 nike

我是 Knockout JS 的新手。我想在 KO 中应用验证。我使用了插件 Knockout.validation.min.js 。我已经像这样实现了但不起作用

我的 View 模型

 $(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
};
}

我创建了一个fiddle当我评论 GetEmployees() 方法但不使用它时它正在工作

最佳答案

在这一行

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

您正在尝试创建一个变量,但语法就像创建一个带有属性的对象,该属性当然是无效的。为了解决这个问题,您可以首先初始化您的对象:

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

这是一个工作 jsFiddle

关于javascript - Knockout JS 验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30996171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com