knockout.js - KnockOut.js 验证始终为真/errors.length = 0
问题描述
我是使用淘汰赛 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());
我只想验证必填字段并在提交/保存按钮上显示错误消息
解决方案
好吧,在尝试了 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());
推荐阅读
- c - 为什么以及在哪里应该在 C 中使用枚举
- unreal-engine5 - 虚幻引擎 5 断言失败 - 世界分区
- javascript - Sequelize 在 findAll 上从数据库中返回错误数量的项目
- python - Plotly Python - Y 标记顺序错误
- php - 有没有办法在 phpunit 中操作我的项目的配置文件?
- c# - 如何将图片放入 ContentDialog
- postgresql - (PostgreSQL) 12.7 (Ubuntu 12.7-0ubuntu0.20.04.1) 无法连接数据库?
- php - 爬虫 PHP 中的 cURL 访问被拒绝
- javascript - 使用 React Bootstrap + Next.JS,我如何在 React 组件中获取文本框的内容并将其发送回我的 Index.js
- discord.js - 如何在我的斜杠命令中创建一个字符串选项来读取用户发送的字符串并将其用作参数?